ZigZag Conversion
约 1 分钟· 本文阅读 次
本页目录
ZigZag Conversion
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
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
convert(PAYPALISHIRING, 3) should return PAHNAPLSIIGYIR.
Solution
找规律题目
public class Solution {
public String convert(String s, int numRows) {
int n = s.length();
if (n <= 1 || numRows <= 1) return s;
StringBuffer res = new StringBuffer();
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j + i < n; j += 2*numRows - 2) {
res.append(s.charAt(j+i));
if (i == 0 || i == numRows - 1) continue;
if (j + 2*numRows - 2 - i < n)
res.append(s.charAt(j + 2*numRows - 2 - i));
}
}
return res.toString();
}
}相关文章
- 2 Sum2016-01-05
- 3 Sum Closest2016-01-05
- 3 Sum2016-01-05
- 4 Sum2016-01-05
已恢复到上次阅读位置