题目:
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 RAnd 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".
class Solution {
public:
string convert(string s, int nRows) {
string result;
if(nRows<2) return s;
int zigSize = 2 * nRows -2;
for(int i=0;i<nRows;i++){
for(int j=i;j<s.length();j+=zigSize){
result.append(1,s[j]);
if(i!=0 && i!=nRows-1 && j + zigSize - 2* i < s.length()){
result.append(1,s[j + zigSize - 2* i]);
}
}
}
return result;
}
};【leetcode】ZigZag Conversion,布布扣,bubuko.com
原文:http://blog.csdn.net/u013378502/article/details/38499913