6. ZigZag Conversion
来源:互联网 发布:hyper v配置nat网络 编辑:程序博客网 时间:2024/06/07 04:10
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 NA P L S I I GY 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 r) { if(r == 1) return s; string res; int n = s.size(); for(int i = 0; i < r; i++){ int start = i, interval1 , interval2; int gap = 2 * r - 2; if(i == 0 || i == r - 1) interval1 = interval2 = gap; else{ interval1 = gap - 2 * i; interval2 = gap - interval1; } int k = 0; while(1){ int pos = start + interval1 * ((k + 1) / 2) + interval2 * (k / 2); if( pos < n){ res.push_back(s[pos]); k++; } else break; } } return res; }};一种很聪明的解法
class Solution {public: string convert(string s, int numRows) { vector<string> vs(numRows, ""); int n = s.length(), i = 0; while (i < n) { for (int j = 0; j < numRows && i < n; j++) vs[j].push_back(s[i++]); for (int j = numRows - 2; j >= 1 && i < n; j--) vs[j].push_back(s[i++]); } string zigzag; for (string v : vs) zigzag += v; return zigzag; } };
0 0
- LeetCode 6. ZigZag Conversion
- LeetCode --- 6. ZigZag Conversion
- LeetCode 6.ZigZag Conversion
- [Leetcode] 6. ZigZag Conversion
- 6.ZigZag Conversion
- 6. ZigZag Conversion
- 6. ZigZag Conversion
- 【leetcode】6. ZigZag Conversion
- 6.ZigZag Conversion
- 6. ZigZag Conversion
- 6.ZigZag Conversion
- [LeetCode] 6.ZigZag Conversion
- LeetCode - 6. ZigZag Conversion
- 6. ZigZag Conversion
- 6. ZigZag Conversion
- 6.ZigZag Conversion(93.10%)
- 6. ZigZag Conversion
- [leetcode] 6. ZigZag Conversion
- 『面试』数据挖掘、机器学习的面试资料
- BOM 、事件、物体位移以及this问题
- exercise11
- -webkit-overflow-scrolling: touch
- mysql 解决中文插入问题
- 6. ZigZag Conversion
- android:Retrofit+LoganSquare的简单用法
- exercise 12 提示
- text-size-adjust
- exercsie13 参数 解包 变量
- 2017年开始的旅程
- 349. Intersection of Two Arrays
- CentOS6重启后DNS被还原的解决办法
- 多线程(多线程面试题)