6. ZigZag Conversion
来源:互联网 发布:数据监控软件 编辑:程序博客网 时间:2024/06/11 23:33
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 conve rsion given a number of rows:
string convert(string text, int nRows);
convert("PAYPALISHIRING", 3)
should return "PAHNAPLSIIGYIR"
.
解题思路:ZigZag转化的结果其实算是倒Z字图像的并列,所以这是个周期性的图行,我们可以"",作为一个周期,周期的长度是2*ROW-2,,在考虑周内的情况,因为,除了第一行和最后一行,其余行在周期内会有两个字母,通过简单的推导他们的间隔是2(ROW-ROWi)-2,ROWi是第几行的行数,;所以代码如下:
class Solution {public: string convert(string s, int numRows) { if (numRows <= 1|| numRows >= s.size()) {return s; } string s_c=""; int i,j,j2; int maxCd = 2 * numRows - 2; int cd; for (i = 0; i < numRows; i++) {j = i; cd = 2 * (numRows - i) - 2;while (j < s.size()) {s_c += s[j];j2 = j + cd;if(j2 <s.size()&& cd != 0&& cd != maxCd){ s_c += s[j2];}j = j+ maxCd; } } return s_c; }};
运行结果:
阅读全文
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
- Oracle 中MERGE语句的用法(转载)
- Python抓取花瓣网高清美图
- 2017图灵杯问题D 简单的图形输出(dfs)
- 查看网页是否压缩gzip+编码方式
- SUBSTRING_INDEX拆分字符串
- 6. ZigZag Conversion
- FOS双向链表
- 在gradle中使用MyBatis Generator生成model,dao,mapper
- vue,js修饰符
- ARKit 初学和发布会 Demo
- PHP命名空间
- Eclipse中project项目转web项目
- Android清除本地数据缓存代码
- 线程同步问题小记