The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P   A   H   N
A P L S I I G
Y I R

And then read line by line: "PAHNAPLSIIGYIR"

解题思路:

观察题目,靠眼力寻找规律即可。如果没有读懂ZigZag的话,请移步

http://blog.csdn.net/zhouworld16/article/details/14121477

java实现:

static public String convert(String s, int nRows) {
if (s == null || s.length() <= nRows || nRows <= 1)
return s; StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i += (nRows - 1) * 2)
sb.append(s.charAt(i)); for (int i = 1; i < nRows - 1; i++) {
for (int j = i; j < s.length(); j += (nRows - 1) * 2) {
sb.append(s.charAt(j));
if (j + (nRows - i - 1) * 2 < s.length()) {
sb.append(s.charAt(j + (nRows - i - 1) * 2));
}
}
} for (int i = nRows - 1; i < s.length(); i += (nRows - 1) * 2)
sb.append(s.charAt(i)); return new String(sb);
}

C++实现如下:

 #include<string>
using namespace std;
class Solution {
public:
string convert(string s, int numRows) {
if (s.length() <= numRows || numRows <= )
return s; string sb;
for (int i = ; i < s.length(); i += (numRows - ) * )
sb+=s[i];
for (int i = ; i < numRows - ; i++) {
for (int j = i; j < s.length(); j += (numRows - ) * ) {
sb+=s[j];
if (j + (numRows - i - ) * < s.length())
sb+=s[j + (numRows - i - ) * ];
}
} for (int i = numRows - ; i < s.length(); i += (numRows - ) * )
sb += s[i];
return sb;
}
};

最新文章

  1. Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
  2. SQL Server跨库复制表数据错误的解决办法
  3. 研究validation插件到现在的感受
  4. BZOJ 2763
  5. Testlink接口使用方法-python语言远程调用
  6. mvc中HttpPost理解
  7. Redis中各种方法的使用
  8. Spring AOP中的JDK和CGLib动态代理哪个效率更高?
  9. gooflow学习笔记
  10. python locust 性能测试:locust 关联---提取返回数据并使用
  11. stylus解决移动端1像素边框的问题
  12. PHP const关键字
  13. mac系统下安装mysql 和phpmyadmin
  14. WinRAR的自解压模式 - imsoft.cnblogs
  15. Chrome英文版离线安装包下载
  16. Qt::浅谈信号槽连接,参数在多线程中的使用
  17. 洛谷P3939 数颜色(二分 vector)
  18. PAT L1-034 点赞
  19. 迁移数据到历史表SQL(转)
  20. Java基础之this关键字的作用

热门文章

  1. 【HDU 4602】Partition
  2. BZOJ-1001 狼抓兔子 (最小割-最大流)平面图转对偶图+SPFA
  3. BZOJ1045 [HAOI2008] 糖果传递
  4. 使用python来调试串口
  5. spring全注解项目
  6. hadoop单节点windows 7 环境搭建
  7. Android中调用百度地图
  8. Oracle大数据常见优化查询
  9. 位图索引:原理(BitMap index)
  10. Visual Studio 2013 中 mysql 使用 EF6