本来想按照时间先后顺序来做LeetCode的题,由于非科班出身,好多东西都不太懂,今天调整思路,先做难度为easy的题。
题目:
我的java解决方案:
public class Solution {
public String convert(String s, int nRows) {
char [] cArray=s.toCharArray();
StringBuilder sb=new StringBuilder();
for(int i=0;i<nRows;i++){
int len=i;
if(nRows==1){sb.append(s);}
else{
if(i==0||(i+1)%nRows==0)/*处理第一行和最后一行*/{
while(len<cArray.length){
sb.append(cArray[len]);
len=len+2*nRows-2;
}
}else{
while(len<cArray.length){
sb.append(cArray[len]);
int step1=2*(nRows-i)-2;
len=len+step1;
if(len<cArray.length){
sb.append(cArray[len]);
len=len+2*i;
}
}
}
}}
return sb.toString();
}
}