"PAYPALISHIRING"
P A H N A P L S I I G Y I R
之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"
实现一个将字符串进行指定行数变换的函数:
string convert(string s, int numRows);
输入: s = "PAYPALISHIRING", numRows = 3 输出: "PAHNAPLSIIGYIR"
输入:输出:解释: P I N A L S I G Y A H R P I
class Solution {//直接开个二维数组模拟即可 public String convert(String s, int numRows) { if(numRows==1) { return s; } int l=s.length(); char map[][]=new char[numRows][l]; for(int i=0;i<numRows;i++) { for(int j=0;j<l;j++) { map[i][j]='0'; } } int count=0; for(int i=0;;i++) { for(int a=0;a<numRows;a++) { if(count==s.length()) break; map[a][2*i]=s.charAt(count); count++; } for(int b=numRows-2;b>0;b--) { if(count==s.length()) break; map[b][2*i+1]=s.charAt(count); count++; } if(count==s.length()) break; } String str=""; for(int i=0;i<numRows;i++) { for(int j=0;j<l;j++) { if(map[i][j]!='0') { str+=map[i][j]; } } } return str; } }
文章来源: LeetCode―― Z字形变换(Java)