The string "Paypalishiring" is written with a zigzag pattern on a given number of rows like this: (You could want to display T His pattern in a fixed font for better legibility)
P A H NA P L S I I GY I R
And then read line: "Pahnaplsiigyir"
Write the code that would take a string and make this conversion given a number of rows:
String convert (string text, int nRows);
Convert ("Paypalishiring", 3) should return "Pahnaplsiigyir".
Difficulty factor : Easy
implementation
string convert(string s, int nRows) { if (nRows <= 1) { return s; } string *temps = new string[nRows]; bool longmod = true; int row = 0; for (int i = 0; i < s.size(); ++i) { if (longmod) { temps[row].append(s.substr(i, 1)); row++; if (row == nRows-1) { longmod = false; } } else { temps[row].append(s.substr(i, 1)); row--; if (row == 0) { longmod = true; } } } string rets; for (int i = 0; i < nRows; ++i) { rets.append(temps[i]); } delete []temps; return rets;}
Leetcode6--zigzag Conversion