【leetcode】ZigZag Conversion
来源:互联网 发布:如何开通淘宝附近可见 编辑:程序博客网 时间:2024/06/07 02:05
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);
convert("PAYPALISHIRING", 3)
should return"PAHNAPLSIIGYIR"
.
解决思路:
对于这个问题,首先要进行分析,如下:
首先,将这个问题分为三个部分
(1)当位于第一行时,每两个之间相差 2*numRows-2;
(2)当位于中间行i行时,偶数列与奇数列之间相差2*(numRows-1-i),奇数列与偶数列之间相差2*i;
(3)当位于最后一行时,每两个元素之间相差2*numRows-2,因此可以和第(1)中情况合并;
Solution:
public class Solution { public String convert(String s, int numRows) { if(numRows == 1 || s.length() <= 1) return s; char []res = new char[s.length()]; int i; int j = 0; for(int row = 0; row < numRows; ++row) { if(row == 0){ i = 0; while(i < s.length()){ res[j++] = s.charAt(i); i += 2*(numRows-1); } } else if(row == numRows-1){ i = numRows - 1; while(i < s.length()){ res[j++] = s.charAt(i); i += 2*(numRows-1); } }else{ i = row; while(i < s.length()){ res[j++] = s.charAt(i); i += 2*(numRows - 1 - row); if(i < s.length()){ res[j++] = s.charAt(i); i += 2*row; } } } } return new String(res); }}
AC:49ms
0 0
- LeetCode: ZigZag Conversion
- LeetCode : ZigZag Conversion
- leetcode 13:zigzag conversion
- [LeetCode] Zigzag Conversion
- LeetCode 6 - ZigZag Conversion
- Leetcode : ZigZag Conversion
- 【leetcode】Zigzag Conversion
- [LeetCode]ZigZag Conversion
- leetcode ZigZag Conversion
- LeetCode-ZigZag Conversion
- LeetCode ZigZag Conversion
- LeetCode 6: ZigZag Conversion
- leetcode-006:ZigZag Conversion
- Leetcode: ZigZag Conversion
- [LeetCode]ZigZag Conversion
- [LeetCode] ZigZag Conversion
- [LeetCode]ZigZag Conversion
- leetcode: ZigZag Conversion
- Linux_《linux高性能服务器编程》 4章
- 关于CheckBox全选以及反选还有单选,多选的逻辑实现
- 操作系统-实验2
- html
- Web开端
- 【leetcode】ZigZag Conversion
- 数据结构——求树的最大深度或者树高
- Ansible Ad-Hoc,facts,role,Galaxy简介
- 【BZOJ】4716 假摔
- linux dts i2c
- html
- PC端所有的屏幕的尺寸
- 开发加密货币永久访问网址
- poj 1322 Chocolate(生成函数 or 概率dp)