6.ZigZag Conversion

2017-12-20  本文已影响0人  夏臻Rock

将给定的一个字符串按照Z字形排放,然后按照行输出结果字符串

题目 :
zigzag
思路:

将化成的Z字形的每一行,用一个字符串记录,然后将所有的行字符串拼接得到最终的结果。

tips:

class Solution {
    public String convert(String s, int numRows) {
        int length=s.length();//字符串的长度
        int row = 0;//row是行号,从零开始
        int flag =1; //flag是标识,标志从上往下(行号递增)还是从下往上(行号递减)
        String[] ans = new String[numRows];//用字符串数组来存放结果每一行的字符
        
        if(numRows<=1||length ==0){return s;} //如果字符串长度为0或者行数小于等于1,则返回原始字符串
        
        //遍历字符串,将每个字符放到相应的行字符串中
        for(int i = 0;i<length;i++){
            
            ans[row] +=s.charAt(i);  //字符串拼接
            row += flag;
            if(row >= numRows){  //当从上往下遍历到目标行数时,变向
                row = row -2;
                flag = -1;
            }
            if(row<0){     //当从下往上遍历到第0行时,变向
                row = row +2;
                flag = 1;
            }
            
        }
        
        //把上面得到的字符串数组拼接成一个字符串,然后输出
        String result = ""; //初始化
        for(int j = 0; j<numRows;j++){
            result += ans[j];
        }
        return result;
        
    }
}
上一篇 下一篇

猜你喜欢

热点阅读