6. ZigZag Conversion*
来源:互联网 发布:小甲鱼c语言视频怎么样 编辑:程序博客网 时间:2024/06/05 04:13
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 conversion given a number of rows:
string convert(string text, int nRows);
convert("PAYPALISHIRING", 3)
should return "PAHNAPLSIIGYIR"
.
My code:
public class Solution { public String convert(String s, int numRows) { char[] c=s.toCharArray(); int len = c.length; StringBuffer sb = new StringBuffer(); if (numRows==1) return s; for(int i=0;i<numRows;i++){ int index=i; int flag=0; if(i==0||i==numRows-1){ while(index<len){ sb.append(c[index]); index+=2*numRows-2; } } else{ while(index<len){ sb.append(c[index]); if(flag%2==0){ index+=2*numRows-2-2*i; } else{ index+=2*i; } flag +=1; } } } return sb.toString(); }}
总结:看了答案提示,不过你真棒。这是本来的思路。
public class Solution { public String convert(String s, int numRows) { char[] c=s.toCharArray(); int len = c.length; StringBuffer[] sb = new StringBuffer[numRows]; for(int i=0;i<sb.length;i++){ sb[i] = new StringBuffer(); } int i=0; while(i<len){ for(int idx=0;idx<numRows&&i<len;idx++){ sb[idx].append(c[i++]); } for(int idx=numRows-2;idx>=1&&i<len;idx--){ sb[idx].append(c[i++]); } } for(int idx=1;idx<sb.length;idx++){ sb[0].append(sb[idx]); } return sb[0].toString(); }}利用list的集合实现遍历,横向每层一个list。
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
- ext2文件系统初步
- sql创建自动备份数据库
- Visual Studio Code安装和配置
- UE4官方文档链接记录
- Android 低功耗蓝牙(BLE)开发(3)-- BluetoothDevice详解
- 6. ZigZag Conversion*
- MyBatis(5):MyBatis 集成 Spring 事务管理(上)
- 线段树-区间和-敌兵布阵(曾老代码)
- 原始坐标转成百度坐标
- javascript之Dom编程艺术一
- Linux下有趣的命令
- 批量坐标转换
- 剑指Offer之面试题11:数值的整数次方
- Struts2(四) 接受参数的三种方法