lc6 ZigZag Conversion

lc6 ZigZag Conversion

分成两步,

第一步垂直向下,

1

1

1

1

第二步倾斜向上

1      1 

1    1

1  1

1

 

用nRows个StringBuilder 然后将他们合并即可 

 1 class Solution {
 2     public String convert(String s, int numRows) {
 3         if(s.length() < numRows)
 4             return s;
 5         if(numRows < 2)
 6             return s;
 7         String[] res = new String[numRows];
 8         for(int i=0; i<numRows; i++){
 9             res[i] = Character.toString(s.charAt(i));
10         }
11         
12         for(int i=numRows; i<s.length(); i++){
13             int tmp = i % (2*numRows - 2);
14             if(tmp >= 0 && tmp < numRows){
15                 res[tmp] += (s.charAt(i));
16             }else{
17                 res[numRows-tmp%(numRows-1)-1] += (s.charAt(i));
18             }
19         }
20         StringBuilder sb = new StringBuilder();
21         for(String i : res)
22             sb.append(i);
23         return sb.toString();
24         
25     }
26 }

 

上一篇:Cordova 问题点备忘


下一篇:6 ZigZig Conversion[M]Z字形变换