6 ZigZag Conversion

来源:互联网 发布:孚盟软件logo 编辑:程序博客网 时间:2024/04/29 16:06
public class Solution {
    public String convert(String s, int numRows) {
if(s==null||"".equals(s)||numRows==0) return "";
if(numRows==1) return s;
int[] steps = new int[numRows];
for(int i=0;i<numRows-1;++i){
steps[i] = 2*(numRows - i - 1);
}
steps[numRows - 1] = steps[0];
int len = s.length();
StringBuffer buffer = new StringBuffer();
for(int i=0;i<numRows;++i){
int step = steps[i];
int j = i;
while(j < len){
char c = s.charAt(j);
buffer.append(c);
j += step;
if(i!=0 && i!=numRows-1){
step = steps[0] - step;
}
}
}
return buffer.toString();
    }
}
0 0