6. ZigZag Conversion
来源:互联网 发布:景区票务软件 编辑:程序博客网 时间:2024/06/09 13:11
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"
.Subscribe to see which companies asked this question
1.非常直接的,没有优化过
public class Solution { public String convert(String s, int numRows) { if(numRows==1) return s; String[] data=new String[numRows]; int i=0; int j=0; for(i=0;i<numRows;++i){ data[i]=""; } for(i=0;i<s.length();i=i+numRows*2-2){ int z=i; for(j=0;j<numRows&&z<s.length();++j){ data[j]+=s.charAt(z); ++z; } for(j=numRows-2;j>0&&z<s.length();--j){ data[j]+=s.charAt(z); ++z; } } String re=""; for(i=0;i<numRows;++i) re+=data[i]; return re; }}
2.More elegent code find in discuss
public class Solution { public String convert(String s, int numRows) { if(numRows<=1) return s; StringBuilder[] data=new StringBuilder[numRows]; for(int i=0;i<numRows;++i) data[i]=new StringBuilder(""); int index=0; int step=1; for(int i=0;i<s.length();++i){ data[index].append(s.charAt(i)); if(index==0) step=1; if(index==numRows-1) step=-1; index+=step; } String re=""; for(int i=0;i<numRows;++i){ re+=data[i].toString(); } return re; }}
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
- 辗转相除法
- decode ways
- python中的函数定义问题
- Android四大组件——BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播
- 第一篇
- 6. ZigZag Conversion
- CF 740 A. Alyona and copybooks
- numpy中的 dot, outer and *
- Cygwin的安装
- QT项目中添加资源文件
- 关于 material design 的笔记
- 三种动态网页技术的简要分析
- 同和偶数
- android 编译签名证书冲突