Leetcode 6 ZigZag Conversion
来源:互联网 发布:淘宝账号名称怎么改 编辑:程序博客网 时间:2024/05/21 07:46
一,问题描述
ZigZag问题可以举个例子:
当输入原字符串和行数后,求ZigZag后的字符串。
二,通过上述观察,我们总结一下
1,当rows=3时,0,1,2,3组成的长度是2*rows-2(即长度为4)。
当rows=4时,0,1,2,3,4,5组成的长度为2*rows-2(即长度为6)。
因此,每一轮的长度为size=2*numRows-2。
2,除了第一行和最后一行,中间的行的相邻字幕,设置a在b之前,则a与b的长度为: j+(2*nRows-2)-2*i ; (nRows表示给定的行数,j表示第j列,i表示第i行。
三,代码,AC了的,用Java实现的
import java.util.*;public class Test2{ public static String convert(String s,int numRows) { if(s.length()==0||numRows<=1)//判断给定的行数是否小于等于1,或者字符串长度为0,是的话,直接输出字符串 { return s; } StringBuffer sb1=new StringBuffer();//使用StringBuffer方法可以把每个字符加上,更加方便 int size=2*numRows-2;//每一轮的长度为size,size=2*numRows-2,可以看我上面给出的解释 for(int i=0;i<numRows;i++) { for(int j=i;j<s.length();j+=size) { sb1.append(s.charAt(j)); if(i!=0&&i!=numRows-1)//除去第0行和第numRows-1行外,中间的 (行数从第0开始) { if((j+size-2*i)<s.length())//除了第一列外,每一行中其他列进行判断。 { sb1.append(s.charAt(j+size-2*i)); } } } } return sb1.toString();//使用了StringBuffer后,则使用了toString. } public static void main(String [] args) { Scanner scan=new Scanner(System.in); String str; String data; int lenth; str=scan.next(); lenth=scan.nextInt(); data=convert(str,lenth); System.out.println("结果="+data); }}
0 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 6ZigZag Conversion
- java超类Object的equals()方法
- toolbar中设置menu收起图标颜色以及popupwindow弹出位置
- Meanshift图像平滑之opencv实现
- Java加密算法---SHA
- discuz 增删该查
- Leetcode 6 ZigZag Conversion
- aidl涉及的Binder框架流程简单分析
- 图片管理
- 第七章 随机应变:网站的可扩展架构
- 第一次
- 第十五章上机练习3
- [JS]JS对象的内部原型(__proto__)和构造器的原型(prototype)
- 手机测试环境调试 -- 微信,Android,IOS开发使用Fiddler代理
- ios应用开发--判断用户是否已经登录