已解决
【LeetCode算法-06】 Z字型转换 问题
来自网友在路上 154854提问 提问时间:2023-11-03 12:53:02阅读次数: 54
最佳答案 问答题库548位专家为你答疑解惑
Z字形转换是指在一个二维网格上,按照从左到右、从上到下、再从右到左、从下到上的Z字形顺序,依次选取每个单元格中的数字。最后将所有的数字连接成一个新的字符串。
例如,对于下面这个网格:
[[ '5', '1', '9', '5'],['7', '5', '3', ''], ['2', '6', '', '8'],['', '9', '8', '']
]
经过Z字形转换之后,得到的新字符串应该是"519575326898"。
下面是用Java实现这个功能的代码:
import java.util.ArrayList;
import java.util.List;public class Solution {public String convert(String s, int numRows) {if (numRows == 1 || numRows >= s.length()) {return s;}List<StringBuilder> rows = new ArrayList<>(numRows);for (int i = 0; i < numRows; i++) {rows.add(new StringBuilder());}boolean down = true;int index = 0;for (char c : s.toCharArray()) {rows.get(index).append(c);if (index == 0 || index == numRows - 1) {down = !down;}index += down ? 1 : -1;}StringBuilder result = new StringBuilder();for (StringBuilder row : rows) {result.append(row.toString());}return result.toString();}
}
在这段代码中,我们首先创建了一个ArrayList来存储每一行的字符。然后我们遍历输入字符串s中的每一个字符,根据当前是否向下移动,将字符添加到对应的行中。最后我们将所有的行连接起来,就得到了新的字符串。
例如,对于上面的例子,我们得到的结果应该是"519575326898"。
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"【LeetCode算法-06】 Z字型转换 问题":http://eshow365.cn/6-31081-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 软件工程:小组开发过程技术(VS VSS UNIX C++)
- 下一篇: 团队表 -多级团队设计