LeetCode 6. ZigZag Conversion
来源:互联网 发布:淘宝 手机 描述 模板 编辑:程序博客网 时间:2024/06/17 01:01
Description:
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 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);
For example:
convert(“PAYPALISHIRING”, 3) should return “PAHNAPLSIIGYIR”.
分析:好吧我用的是最朴素的做法:若有更好的方法欢迎指出~
记 t = (numRows - 1) * 2
1. 找规律发现第一行下标是以0为首项,t 为公差的等差数列,循环输出之
2. 第二行至倒数第二行分别是以 i 和 t - i (i 为行下标)为首项,t为公差的等差数列交错输出
3. 最后一行为以 t / 2 为首项, t为公差的等差数列,循环输出之
大功告成~
Submission Details:
1158 / 1158 test cases passed.
Status: Accepted
Runtime: 22 ms
class Solution {public: string convert(string s, int numRows) { if (numRows == 1) { return s; } string res = s; //用于保存输出字符串 int p, q, r = 0; //p,q扫描s,r扫描res int len = s.length(); int t = (numRows - 1) * 2; //重复出现周期 for (int i = 0; i < numRows; i++) { if (i == 0) { //处理第一行 p = 0; while (p < len) { res[r++] = s[p]; p += t; } } else if (i != t / 2) { //处理除了最后一行的其他行 p = i; q = t - i; while (p < len && q < len) { res[r++] = s[p]; res[r++] = s[q]; p += t; q += t; } if (p < len) { res[r++] = s[p]; } } else { //处理最后一行 p = t / 2; while (p < len) { res[r++] = s[p]; p += t; } } } return res; }};
阅读全文
1 0
- LeetCode 6. ZigZag Conversion
- LeetCode --- 6. ZigZag Conversion
- LeetCode 6.ZigZag Conversion
- [Leetcode] 6. ZigZag Conversion
- 【leetcode】6. ZigZag Conversion
- [LeetCode] 6.ZigZag Conversion
- LeetCode - 6. ZigZag Conversion
- [leetcode] 6. ZigZag Conversion
- Leetcode 6. ZigZag Conversion
- leetcode 6. ZigZag Conversion
- leetcode 6. ZigZag Conversion
- leetcode 6. ZigZag Conversion
- Leetcode 6. ZigZag Conversion
- [leetcode]6. ZigZag Conversion
- [leetcode] 6. ZigZag Conversion
- LeetCode 6. ZigZag Conversion
- LeetCode *** 6. ZigZag Conversion
- leetcode 6. ZigZag Conversion
- Java中遍历文件夹的2种方法
- 非均衡分类问题
- HDU1213-How Many Tables
- html5 <input type='file' 样式修改
- javascript算法
- LeetCode 6. ZigZag Conversion
- 8月7号训练
- 累加、迭代、递推、穷举、递归 ,等运算,笔记
- Spring 学习笔记 事务管理 解决购买彩票问题
- 深度学习如何入门
- 2017.8.7——最小生成树HIGHWAYS
- sklearn之朴素贝叶斯实战
- 找色块小游戏
- C#@的功能总结