✨✨hello,愿意点进来的小伙伴们,你们好呐!
🐻🐻系列专栏:【力扣刷题篇】
🐲🐲本篇内容: 每日刷题
🐯🐯作者简介:一名现大二的三非编程小白,日复一日,仍需努力。
链接: Z字形变换
通过该题我们可以得出:
我们需要将一个字符串从上往下,从左往右的方向进行Z字形排列,然后我们需要将该字符串重新排列 。
将其按照以每行依次存进字符串,并输出。
我们可以使用StringBuffer来拼接字符串,那么每一行就需要用一个StringBuffer来进行字符串拼接。
那么我们可以使用ArrayList集合来存储StringBuffer。
然后最重要的就是遍历Z字形进行StringBuffer进行字符串拼接。
重点就是我们要如何进行遍历Z字形呢。
可以使用一个flag变量来实现。
接下来我们来看看代码是2如何实现的》
class Solution {public String convert(String s, int numRows) {//当数组行数为1或者小于1时,if(numRows <= 1){return s;}List list = new ArrayList();//在ArrayList中存入跟行数相同的StringBuffer,用来存入每一行的元素for(int j = 0; j < numRows; j++){list.add(new StringBuffer());}//来记录每一行数int i = 0;//来改变行数遍历的方向int flag = -1;//将字符串转成字符数组来进行遍历for(char ch : s.toCharArray()){list.get(i).append(ch);//取出元素存入每一行的StringBUffer中if(i == 0 || i == numRows - 1){//如果是第一行或者最后一行,flag就要转化符号,来进行z字形遍历flag = -flag;}i += flag;}StringBuffer buffer = new StringBuffer();for(StringBuffer sb : list){buffer.append(sb);}return buffer.toString();}
}