題目鏈接:https://leetcode-cn.com/problems/zigzag-conversion/
題解:用一個二維數組來存儲這個字符串,就是按照題目的方式存儲,然後按行遍歷即可。
代碼:
string convert(string s, int numRows) {
int length = s.length();
vector<vector<char>> vec(numRows, vector<char>(length, 0));
int pos = 0, i = 0, j = 0;
while (pos!=length){
for (i; i < numRows; ++i){
if (pos == length)
break;
vec[i][j] = s[pos];
pos++;
}
i = (i - 2 > 0) ? i - 2 : 0;
j++;
while (i>0){
if (pos == length)
break;
vec[i][j] = s[pos];
pos++;
i--;
j++;
}
}
string result = "";
for (int i = 0; i < numRows; ++i){
for (int j = 0; j < length; ++j){
if (vec[i][j] != 0){
result += vec[i][j];
}
}
}
return result;
}