码迷,mamicode.com
首页 > 其他好文 > 详细

【Leetcode-easy】ZigZag Conversion

时间:2015-11-16 00:44:28      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

思路:String[numRow]行字符串数组。读取原始字符串每一个字符,设置行变量 nrow和行标志位flag(向下一行为1或向上一行为-1)。将该字符连接到数组中对应的行字符串,同时nrow+=flag。

 1     public String convert(String s, int numRows) {
 2         if(s==null||s.length()==0||numRows<=1){
 3             return s;
 4         }
 5         String[] strRowArr=new String[numRows];     
 6         Arrays.fill(strRowArr, "");      
 7         int flag=1;    //向下走为1,向上走位-1
 8         int nrow=0;    //当前字符应该在的行
 9         for(int i=0;i<s.length();i++){
10             char t=s.charAt(i);
11             strRowArr[nrow]+=t;
12             nrow+=flag;
13             if(nrow>=numRows){
14                 //nrow已经越下界,更新为倒数第二行,标志flag也变为-1
15                 nrow=(numRows-1)-1;
16                 flag=-1;
17             }
18             if(nrow<0){
19                 //nrow已经越上界,更新为第二行,标志位flag变为1
20                 nrow=1;
21                 flag=1;
22             }
23         }
24         //行字符串数组 拼接成一个完整的字符串
25         String rowString="";
26         for(String str:strRowArr){
27             rowString+=str;
28         }
29         return rowString;
30     }

 

【Leetcode-easy】ZigZag Conversion

标签:

原文地址:http://www.cnblogs.com/scecit/p/4967751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!