Z字形变换( ZigZag Conversion)java
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangjingao/article/details/82994097
题干
将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H N
A P L S I I G
Y I R
之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);
示例 1:输入: s = "PAYPALISHIRING", numRows = 3
输出: "PAHNAPLSIIGYIR"
示例 2:输入: s = "PAYPALISHIRING", numRows = 4
输出: "PINALSIGYAHRPI"
解释:P I N
A L S I G
Y A H R
P I
分析
循环排列。先向下,在斜向上
代码
public String convert(String s, int numRows) {if (numRows == 1) {return s;}int index = 0;char [][] arr = new char[numRows][s.length()];int col = 0;int row = 0;while (index 0 && index // System.out.print(arr[i][j]);if (arr[i][j] != '\u0000') {result.append(arr[i][j]);}}}return result.toString();}
运行情况
我关于算法练习的github代码地址:https://github.com/zhangjingao/algorithm