ZigZag Conversion
来源:互联网 发布:邦奇-威尔斯 知乎 编辑:程序博客网 时间:2024/05/29 08:27
思路:将字符串改为数字,通过数字寻找规律,例如:
偶数行:
0 6 12
1 5 7 11
2 4 8 10
3 9
奇数行:
0 4 8
1 3 5 7
2 6
可以发现不管是奇数列还是偶数列,第一行和最后一行的数字后一个总是前一个的下标加上(numRows*2-2)
然后就是中间行数,可以发现偶数列依然符合上述规律,而奇数列为偶数列 - numRows * 2;
public class Solution { public String convert(String s, int numRows) { if(numRows <=1 || s.length()==0){ return s; } char[] array = s.toCharArray(); StringBuilder builder = new StringBuilder(); int index; for(int i = 0; i < numRows; i++){ index = i; //由于i有可能大于字符个数,即numRows有可能大于字符个数 for(int j = 0; j < array.length && i < array.length; j++ ){ //第一列的下标为行数递增 builder.append(array[index]); //下面开始计算每一行的下一个字符的下标, if(i == 0 || i == numRows-1){ index += numRows * 2 - 2; }else{ //中间行数分别判断奇数列和偶数列 if((j+1) % 2 != 0){ index += (numRows*2 -2) - i*2; }else{ index = index + i*2; } } //判断下标是否超过字符串的长度,以此条件来终止循环 if(index >= array.length){ break; } } } return builder.toString(); }}
0 0
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- Zigzag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- LeetCode222:Count Complete Tree Nodes
- HDOJ1272~小希的迷宫~并查集
- 将博客搬至CSDN
- button的内边距
- iOS编程——Swift实现一个3D可旋转的立方体(可做菜单页)
- ZigZag Conversion
- BJFU 1398 蚂蚁下落
- Netty中execution包功能详解
- 屌丝北漂那点事
- ORACLE中如何查看CURRENT_SCHEMA
- hadoop yarn 配置
- Android面试题
- POJ 1157 LITTLE SHOP OF FLOWERS(动态规划)
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte