ZigZag Conversion解题报告
来源:互联网 发布:java list<>遍历 编辑:程序博客网 时间:2024/05/29 13:23
找规律的题目,题目的大意是给定一个字符串和行数,排列成锯齿形后逐行输出。比如“PAYPALISHIRING”输出之后应该是这样的:
P A H NA P L S I I GY I R可以发现这样的规律:第一行和最后一行相邻两个字符之间的间隔是interval = (nRows - 1) * 2,中间行i(0 < i < nRows - 1)相邻两个字符之间的间隔有两种情况,分别是interval1 = interval - i * 2, interval2 = interval - interval1,并且这两种情况是交替进行的。Ok,举个例子,假设nRows = 3,即上面的例子,那么第一行相邻字符之间的间距是4,第二行A与P之间的字符间距是2 = 4 - 2 * 1(interval1 = interval - i * 2),P与L之间的字符间距是2 = 4 - 2(interval2 = interval - interval1)。
Code:
string convert(string s, int nRows) {if (nRows == 1)return s;if (s.length() <= nRows || s.length() <= 1)return s;int interval = (nRows - 1) * 2;string ret = "";int len = s.length();for (int i = 0; i < nRows; ++i){int interval1 = interval - 2 * i;if (i == 0 || i == nRows - 1){ret += s[i];int j = i + interval;while (j < len){ret += s[j];j += interval;}}else{ret += s[i];int j = i + interval1;while (j < len){ret += s[j];interval1 = interval - interval1;j += interval1;}}}return ret;}
0 0
- ZigZag Conversion解题报告
- 【LeetCode】ZigZag Conversion 解题报告
- LeetCode ZigZag Conversion 解题报告
- LeetCode解题报告--ZigZag Conversion
- [LeetCode] ZigZag Conversion 解题报告
- [LeetCode] ZigZag Conversion 解题报告
- LeetCodeProblem6 ZigZag Conversion解题报告
- Leetcode ZigZag Conversion解题报告
- [leetcode] 6. ZigZag Conversion 解题报告
- LeetCode 6. ZigZag Conversion 解题报告
- [Leetcode] 6. ZigZag Conversion 解题报告
- leetcode解题报告6. ZigZag Conversion
- [LeetCode 解题报告]006.ZigZag Conversion
- 【LeetCode】6.ZigZag Conversion(Medium)解题报告
- LeetCode(6) ZigZag Conversion解题报告
- LeetCode解题报告 6. ZigZag Conversion[easy]
- 【Leetcode】6.ZigZag Conversion 解题
- [Leetcode]解题文档-ZigZag Conversion
- Linked List Cycle
- nginx 禁止某个IP访问站点
- Nginx配置文件详细说明
- 关于linux模块编程
- mysql alter用法
- ZigZag Conversion解题报告
- 仿Android联系人SideBar排序,根据拼音A-Z字母快速导航联系人姓名,以及输入搜索条件过滤,显示姓名的文字图片
- HDU - 1114 - Piggy-Bank (完全背包)
- ortoiseGIT 卸载重装
- C# char类型
- 黑马程序员--匿名对象、Object类、final
- STL源码:heap
- 传统B2B中小型企业如何做好全网营销
- 内存分析工具 MAT 的使用