您的位置:首页 > 其它

【leetcode】 ZigZag Conversion

2015-03-19 22:47 295 查看
问题描述:

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 String convert(String s, int nRows) {
String answer = "" ;
if(nRows==1)
return s;
int times=0;
//	System.out.println("s.length is "+ s.length());
for(int i=0;i<nRows;i++){
times=0;
while((i+times*(nRows-1))<s.length()){

answer=answer+s.charAt(i+times*(nRows-1));
//判断一下是否为首行或者尾行
if(i!=0&&i!=nRows-1){
//判断下   row+(times+1)*(row-1)-i 是否超过最大值
if((  (times+2)*(nRows-1)-i)<s.length()){

answer=answer+s.charAt((times+2)*(nRows-1)-i);
}
}
times++;
times++;
}
}
return answer;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: