LeetCode OJ 6. ZigZag Conversion

来源:互联网 发布:数据库原理pdf网盘下载 编辑:程序博客网 时间:2024/06/05 22:54

题目:给定一个字符串和行数,按照下面的方式摆放,然后按照另一种顺序输出。

翻译:

字符串“PAYPALISHIRING”通过一个给定的行数写成如下这种Z型模式:

然后一行一行的读取:“PAHNAPLSIIGYIR”


public class Main {    public static void main(String[] args) {// write your code here        Main m = new Main();        System.out.println(m.convert("AB",1));        System.out.println(m.convert("PAYPALISHIRING",4));    }    public String convert(String s, int numRows) {        if(numRows < 2)            return s;        StringBuilder[] stringBuilder = new StringBuilder[numRows];//创建numRows个String按照顺序放到相应的桶里面        for(int i = 0;i < numRows;i++){            stringBuilder[i] = new StringBuilder();        }        int j = 0;        boolean flag = false;//用于标记放入顺序 1~numRows 或 numRows~1        for(int i = 0;i < s.length();i++){            stringBuilder[j].append(s.charAt(i));            if(i!= 0 && i%(numRows - 1) == 0){//放入顺序改变                if (flag)                    flag = false;                else                    flag = true;            }            if(!flag)                j++;            else                j--;        }        for(int i = 1;i < numRows;i++)             stringBuilder[0].append(stringBuilder[i]);        return stringBuilder[0].toString();    }}


0 0
原创粉丝点击