标签:
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"
.
Runtime: 16ms
1 class Solution { 2 public: 3 string convert(string s, int numRows) { 4 if(numRows <= 1) return s; 5 if(s.empty()) return s; 6 7 string result; 8 int size = 2 * numRows - 2; 9 for(int i = 0; i < numRows; i++){ 10 for(int j = i; j < s.length(); j += size){ 11 result += s[j]; 12 if(i != 0 && i != numRows - 1){ 13 int temp = j + size - 2 * i; 14 if(temp < s.length()) 15 result += s[temp]; 16 } 17 } 18 } 19 return result; 20 } 21 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/4870605.html