将字符串 "PAYPALISHIRING"
以Z字形排列成给定的行数:
P A H N A P L S I I G Y I R
之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"
实现一个将字符串进行指定行数变换的函数:
string convert(string s, int numRows);
示例 1:
输入: s = "PAYPALISHIRING", numRows = 3 输出: "PAHNAPLSIIGYIR"
示例 2:
输入: s = "PAYPALISHIRING", numRows = 4 输出: "PINALSIGYAHRPI" 解释: 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;
}
}