标签:
The string "PAYPALISHIRING"
is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)
P A H N A P L S I I G Y I R
And then read line by line: "PAHNAPLSIIGYIR"
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
convert("PAYPALISHIRING", 3)
should return "PAHNAPLSIIGYIR"
.
代码如下:
public class Solution {
public String convert(String s, int numRows) {
int[] aa=new int[s.length()];
char[] sa=new char[s.length()];
char[] ss=s.toCharArray();
int m=0;
if(s.length()<=numRows||numRows<=1)
return s;
else{
int n=1;
for(int i=0;i<s.length();)
{
while(n<=numRows&&i<s.length())
aa[i++]=n++;
int nn=numRows-1;
while(nn>0&&i<s.length())
aa[i++]=nn--;
if(nn==0)
n=2;
}
for(int j=1;j<=numRows;j++)
for(int k=0;k<s.length();k++)
if(aa[k]==j)
sa[m++]=ss[k];
}
return String.valueOf(sa);
}
}
标签:
原文地址:http://www.cnblogs.com/ghuosaao/p/5398349.html