本文主要是介绍Java | Leetcode Java题解之第6题Z字形变换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
class Solution {public String convert(String s, int numRows) {int n = s.length(), r = numRows;if (r == 1 || r >= n) {return s;}int t = r * 2 - 2;int c = (n + t - 1) / t * (r - 1);char[][] mat = new char[r][c];for (int i = 0, x = 0, y = 0; i < n; ++i) {mat[x][y] = s.charAt(i);if (i % t < r - 1) {++x; // 向下移动} else {--x;++y; // 向右上移动}}StringBuffer ans = new StringBuffer();for (char[] row : mat) {for (char ch : row) {if (ch != 0) {ans.append(ch);}}}return ans.toString();}
}
这篇关于Java | Leetcode Java题解之第6题Z字形变换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!