LeetCode z字形变换
发现规律,第一行和最后一行,以及中间的普通行分开按等差数列找规律。
第一行和最后一行,每列为满列,相差2*numRows-2;
中间普通列,满列和单列分开算,单列与满列字母相差2*(numRows-1-i),额外加入
class Solution {
public String convert(String s, int numRows) {
int len=s.length();
if(len==0||numRows<=1) return s;
int zlen=2*numRows-2;
String result="";
for(int i=0;i<numRows;i++){
for(int j=i;j<len;j+=zlen){
result+=s.charAt(j);
if(i!=0&&i!=numRows-1&&(j+2*(numRows-1-i))<len){
result+=s.charAt(j+2*(numRows-1-i));
}
}
}
return result;
}
}
网友评论