day08(11.5)——leetcode面试经典150
6. Z 字形变换
6. Z字形变换
真没招了,果然还是得仔细,一不小心就出错啊啊啊啊啊
我用的依旧是笨办法,直接就是弄一个二维字符数组,然后往里面一个一个塞,再遍历找出来
唯一要注意的就是没有值的ascll码为0, 值为‘\0’
先处理竖着的,再处理中间斜着的
题目:


题解:
class Solution {public String convert(String s, int numRows) {StringBuilder st = new StringBuilder();if(numRows == 1) {return s;}char[][] str = new char[numRows][s.length()];int x = 0;int y = 0;int i = 0;while(i<s.length()) {while(x<=numRows-1&&i<s.length()) {str[x][y] = s.charAt(i);x++;i++;}x-=2;y++;while(x>=1&&i<s.length()) {str[x][y] = s.charAt(i);x--; y++;i++;}x=0;}for(i=0;i<numRows;i++) {for(int j=0;j<s.length();j++) {if(str[i][j] != 0) {st.append(str[i][j]);}}}return st.toString();}
}
我觉得还是得看个题解,这个方法有点太笨了
