标签:style blog color io os ar java for sp
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 RAnd 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 nRows) {
if(s==null||s.length()<=1||nRows==1)
{
return s;
}
StringBuilder result=new StringBuilder(s.length());
int LEN=2*nRows-2;
int times=s.length()/LEN+1;
for(int row=0;row<nRows;row++)
{
int p1=row;
int p2=row==nRows-1?LEN+row:LEN-row;
if(p1<s.length())
{
result.append(s.charAt(p1));
}
if(p2<s.length())
{
result.append(s.charAt(p2));
}
for(int i=0;i<times;i++)
{
p1+=LEN;
if(p1!=p2&&p1<s.length())
{
result.append(s.charAt(p1));
}
p2+=LEN;
if(p2<s.length())
{
result.append(s.charAt(p2));
}
}
}
return result.toString();
}
}标签:style blog color io os ar java for sp
原文地址:http://blog.csdn.net/jiewuyou/article/details/40146195