【LeetCode】之字形变换

来源:互联网 发布:软件版权声明 编辑:程序博客网 时间:2024/05/29 16:38

6. ZigZag Conversion

题目:将输入的字符串进行之字形变换后按行输出

思路:找到变换后的循环规律,即第一行和最后一行都是每隔固定长度取值,中间行在此基础上加上之字形中间的部分。

public class Solution {    public String convert(String s, int numRows) {        if(s.length() <= 0 || numRows <= 1 || numRows >= s.length()) return s;        int len = 2*numRows-2;        StringBuffer ret = new StringBuffer();        for(int i = 0; i < numRows; i++){            for(int j = i; j < s.length(); j+=len){                ret.append(s.charAt(j));                if(i != 0 && i != numRows-1){                    int k = j + len - 2*i;                    if(k < s.length()){                        ret.append(s.charAt(k));                    }                }            }        }        return ret.toString();    }}



0 0
原创粉丝点击