ZigZag Conversion

来源:互联网 发布:js需要做保护层吗 编辑:程序博客网 时间:2024/06/01 09:39

 "PAYPALISHIRING" 

P   A   H   NA P L S I I GY   I   R
And then read line by line: "PAHNAPLSIIGYIR"

分析:该题就是给一个字符串,先下写再上写

class Solution {public:    string convert(string s, int numRows) {        //if(numRows==1)         //  return s;        string a[numRows];//定义动态的字符串数组        int row=0,l1=0,fx=0,i,flag;        for(i=0;i<s.length();)        {            //flag=0;            if(fx==0){                if(l1<numRows){                    a[l1++]+=s[i++];                    //flag=1;                }                else{                    fx=1;                    l1=numRows-2;                }            }                        if(fx){                if(l1>0){                    a[l1--]+=s[i++];  //出错地方,要保证s中的字符被用过一个后,i再++,而不是在for循环里对I++,有时一次for循环后,s[i]并没有被用到                    //flag=1;                }                else{                    fx=0;                    l1=0;                }            }            //if(flag)             // i++;        }        string sum;  //c++不用初始化        for(i=0;i<numRows;i++)            sum+=a[i];        return sum;    }};

注意:注释的地方,对于(asd,2)出错的地方在于,当走到d时,会运行第二个if的else,然后又进入下一个循环i++,使d就没了





0 0
原创粉丝点击