leetcode06- ZigZag Conversion之Java版本
2016-06-02 19:05
295 查看
我的leetcode之旅,该篇章主要完成使用Java实现算法。这是第6篇ZigZag Conversion
全部代码下载:Github链接:github链接,点击惊喜;写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github;多谢;
And then read line by line:
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
2.从上图我们就可以看出规律除了第一行和最后一行都遵循一个规律:
都是从:i,i+(numRows-1-i)*2,i+(numRows-1-i)*2+2*i;…
3.使用StringBuilder进行迭代添加即可
好的本章介绍到这里 来自伊豚wpeace(blog.wpeace.cn)
全部代码下载:Github链接:github链接,点击惊喜;写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github;多谢;
1.题目简介:
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 N A P L S I I G Y 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".
2.我的思路:
1.可以用笔写出5行的序号zigZag然后寻找规律2.从上图我们就可以看出规律除了第一行和最后一行都遵循一个规律:
都是从:i,i+(numRows-1-i)*2,i+(numRows-1-i)*2+2*i;…
3.使用StringBuilder进行迭代添加即可
3.我的AC代码
package com.rlovep.string; /** * ZigZag Conversion * 我的思路: * 1.可以用笔写出5行的序号zigZag然后寻找规律 * 2.从上图我们就可以看出规律除了第一行和最后一行都遵循一个规律: * 都是从:i,i+(numRows-1-i)*2,i+(numRows-1-i)*2+2*i;... * 3.使用StringBuilder进行迭代添加即可 * @author peace * */ public class ZigZag { public String convert(String s, int numRows) { if(s==null||"".equals(s)||numRows==1)return s; StringBuilder sb=new StringBuilder(); int index=0; int length=s.length(); int l1=(numRows-1)<<1; while(true){ if(index<length) { sb.append(s.charAt(index)); index+=l1; }else{ break; } } for(int i=1;i<numRows-1;i++){ l1=(numRows-1-i)<<1; int l2=i<<1; index=i; while(true){ if(index<length){ sb.append(s.charAt(index)); index+=l1; }else{ break; } if(index<length){ sb.append(s.charAt(index)); index+=l2; }else{ break; } } } index=numRows-1; l1=(numRows-1)<<1; while(true){ if(index<length) { sb.append(s.charAt(index)); index+=l1; }else{ break; } } return sb.toString(); } }
好的本章介绍到这里 来自伊豚wpeace(blog.wpeace.cn)
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树