import java.util.ArrayList;import java.util.List;/*** @Author :田宇寒.* @Date :Created in 17:08 2021年6月2日* @Description:字符串Z字形输出* @Modified By:* @Version: 1.0$*/public class code6 {public static void main(String[] args) {Solution2 solution = new Solution2();System.out.println(solution.convert("AB", 1));}static class Solution {public String convert(String s, int numRows) {/*** create by: 田宇寒* description: 暴力算法使用二维字符数组 时间复杂度 O(n) 空间复杂度 O(n2)* create time: 10:01 2021年6月3日* @Param: s* @Param: numRows* @return java.lang.String*/if (numRows == 1 || s.length() <= numRows) {return s;}char[] chars = s.toCharArray();int colums = (int) Math.ceil(Double.valueOf(chars.length) / Double.valueOf(numRows*2 -2)) * (numRows - 1);char[][] charArray = new char[numRows][colums];boolean rowAdd = true;int i = 0, j = 0;for (char aChar : chars) {if (rowAdd) {charArray[i][j] = aChar;if (i == numRows - 1) {rowAdd = false;--i;++j;} else {++i;}} else {charArray[i][j] = aChar;if (i == 0) {rowAdd = true;++i;} else {++j;--i;}}}StringBuilder stringBuilder = new StringBuilder();for (char[] chars1 : charArray) {stringBuilder.append(chars1);}return stringBuilder.toString().replace("\u0000","");}}static class Solution2 {public String convert(String s, int numRows) {/*** create by: 田宇寒* description: 按行排序 时间复杂度O(n) 空间复杂度O(n)* create time: 10:20 2021年6月3日* @Param: s* @Param: numRows* @return java.lang.String*/if (s.length() == 1 || numRows == 1) {return s;}List<StringBuilder> list = new ArrayList<>(numRows);for (int i = 0 ; i < numRows; i++) {list.add(new StringBuilder());}char[] chars = s.toCharArray();int currentRow = 0;int flag = -1;for (char c : chars) {StringBuilder stringBuilder = list.get(currentRow);stringBuilder.append(c);if (currentRow == numRows - 1 || currentRow == 0) {flag = -flag;}currentRow += flag;}StringBuilder result = new StringBuilder();for (StringBuilder stringBuilder : list) {result.append(stringBuilder.toString());}return result.toString();}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。