ZigZag Conversion

来源:互联网 发布:零基础学python要多久 编辑:程序博客网 时间:2024/06/06 06:45

题目

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   NA P L S I I GY   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".

方法

将字符串Z字形排列,然后输出新的字符串。只需要循环处理即可。递增在递减。
    public String convert(String s, int nRows) {        String[] subString = new String[nRows];                for(int i =0; i < nRows; i ++){            subString[i] = "";        }                int flag = 0;        int currentRows = 0;        String convertString ="";        if(nRows == 1){            return s;        }        for(int i = 0; i < s.length(); i ++){            if(flag == 0){                if(currentRows < nRows){                    subString[currentRows] +=s.charAt(i);                    currentRows ++;                }                if(currentRows == nRows){                    flag = 1;                    currentRows -- ;                }                            }else{                if(currentRows > 0){                    subString[currentRows - 1] +=s.charAt(i);                    currentRows --;                }                if(currentRows == 0){                    flag = 0;                    currentRows ++;                }            }        }                                for(int i = 0; i < nRows; i ++){            convertString += subString[i];        }        return convertString;    }


0 0
原创粉丝点击