【LeetCode 6】Z 字形变换
【题解】
还想着模拟这个过程。然后发现只有行有用啊!... 那就建个rows大小的字符串数组存每行从左到右的字符就行啦。。 然后就是i从1变到n然后又变回1反复就好了。 最后把1..rows按顺序首尾连接在一起就行【代码】
class Solution {
public:
string convert(string s, int numRows) {
if (numRows==1) return s;
string dic[5000];
for (int i = 1;i <= numRows;i++) dic[i]="";
dic[1] = dic[1]+s[0];
int len = s.size();
int row = 1;
int flag = 1;
for (int i = 1;i<=len-1;i++){
row+=flag;
if (row>numRows){ row = numRows-1;flag = -1;}
if (row<=0) {row = 2;flag = 1;}
dic[row]=dic[row]+s[i];
}
string temp = "";
for (int i = 1;i <= numRows;i++){
temp = temp + dic[i];
}
return temp;
}
};