[LeetCode] 6. ZigZag Conversion
题目
ZigZag Conversion | LeetCode OJ
描述
把给定的字符串按照指定行数的 Z 字形图案写出来,然后返回其按水平行读取的结果字符串。
举例
若给定字符串 PAYPALISHIRING,行数为 3,那么,它对应的 Z 字形图案应该是:
P A H N A P L S I I G Y I R
,那么,函数应该返回字符串:PAHNAPLSIIGYIR。
思路
(暂无)
代码
class Solution {
public:
string convert(string s, int nRows) {
int n = s.size();
if(n==0) return string();
if(nRows<=0) return string();
if(nRows==1) return s;
string str;
for(int i=0; i<nRows; i++){
if(i==0 || i==nRows-1){
int index = i;
while(index < n){
str += s[index];
index += nRows*2-2;
}
}
else{
int index = i;
while(index < n){
str += s[index];
int next = index + (nRows*2-2) - i*2;
if(next < n)
str += s[next];
index += nRows*2-2;
}
}
}
return str;
}
};