首页 > 代码库 > LeetCode--ZigZag Conversion

LeetCode--ZigZag Conversion

本来想按照时间先后顺序来做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();
    }
}

效果(效率分部位置):



LeetCode--ZigZag Conversion