LeetCode #6 : 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".


這道題建立nRows個(gè)string存儲(chǔ)在vector中,然后便利string每個(gè)字符,將字符加入到指向的vector中的string的末尾,指向位置先正向便利,再逆向遍歷,循環(huán)直至傳入的string末尾。

string convert(string s, int numRows) {
        if (numRows < 2) return s;
        vector<string> v;
        while (v.size() < numRows) {
            string str;
            v.push_back(str);
        }
        bool backward = true;
        int i = 0;
        int currentString = 0;
        while (i < s.length()) {
            v[currentString] += (s[i++]);
            if (currentString == v.size() - 1) {
                backward = false;
            } else if (currentString == 0) {
                backward = true;
            }
            currentString = backward ? (currentString + 1) : (currentString - 1);
        }
        string res;
        for (int j = 0; j < v.size(); ++j) {
            res.append(v[j]);
        }
        return res;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容