您的位置:首页 > 其它

LeetCode OJ ZigZag Conversion ”之“字符串变化 string操作

2015-03-24 13:05 169 查看


ZigZag Conversion

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"
.

class Solution {
public:

    /*
    向下循环:nRows
    斜角线循环:nRows-2(减去首尾两个端点)
    s PAYPALISHIRING
    i   0
    j   0
    res  PAHN
         APLSIIG
         YIR
    */
    string convert(string s, int nRows) {
        
        if(nRows == 1) return s;
        string res[nRows];
        int i,j;
        i=0;
        while(i<s.size())
        {
            for(j=0;j<nRows&&i<s.size();j++)
                res[j]+=s[i++];
            for(j=nRows-2;j>0&&i<s.size();j--)
                res[j]+=s[i++];
        }
        string str="";
        for(i=0;i<nRows;i++)
            str+=res[i];
        return str;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: