ZigZag Conversion
2014-05-30 11:46
134 查看
ZigZag Conversion
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".
由题意可以看出是通过将原先的字符串按‘N’重新排列在组合。
思路就很简单了,通过一个vector<string>来记录每一行的数据,对初始字符串从上向下排列,到达底部在向上,以此类推。row=1就直接输出原字符串。
string convert(string s, int nRows) {
if(nRows == 1)
return s;
vector<string> vec(nRows, "");
bool check = true; //判断是升序还是降序
for(int i = 0, j = 0; i < s.size(); i++){
vec[j] += s[i]; //j是处理的行
if(check)
j++;
else
j--;
if(j == 0 || j == nRows - 1) //当j到达顶部或底部,需要更改执行顺序
check = !check;
}
string s2;
for(int i = 0; i < nRows; i++)
s2 += vec[i];
return s2;
}
相关文章推荐
- 【Leetcode】ZigZag Conversion
- 6. ZigZag Conversion
- 小而巧的数字压缩算法:zigzag
- LeetCode 6. ZigZag Conversion
- Leetcode 103. Binary Tree Zigzag Level Order Traversal 二叉树Zigzag遍历 解题报告
- 6. ZigZag Conversion
- ZigZag Conversion
- zigzag数组:输入n,求一个nXn矩阵,规定矩阵沿45度递增,形成一个zigzag数组
- leetcode_p6_ZigZag_Conversion_c++
- leetcode-6. ZigZag Conversion
- zigzag convert
- Leetcode 6. ZigZag Conversion
- 漫步最优化四十二——Partan法
- Leetcode || ZigZag Conversion
- [Leetcode 6] ZigZag问题的一种新思路
- 6. ZigZag Conversion\38. Count and Say
- [leetcode]ZigZag Conversion
- LeetCode(60)-ZigZag Conversion
- LeetCode 6 - ZigZag Conversion
- leetcode06- ZigZag Conversion之Java版本