五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

字符串模擬算法題

2023-02-10 15:15 作者:meiwanlanjun  | 我要投稿

我們來看一道很有意思的算法題目: 將一個(gè)給定字符串 s 根據(jù)給定的行數(shù) numRows ,以從上往下、從左到右進(jìn)行 Z 字形排列。 比如輸入字符串為 "PAYPALISHIRING" 行數(shù)為 3 時(shí),排列如下: P A H N A P L S I I G Y I R 之后,你的輸出需要從左往右逐行讀取,產(chǎn)生出一個(gè)新的字符串,比如:"PAHNAPLSIIGYIR"。 請(qǐng)你實(shí)現(xiàn)這個(gè)將字符串進(jìn)行指定行數(shù)變換的函數(shù): string convert(string s, int numRows); 復(fù)制代碼 大家先思考一下,如果是自己來解這道題,會(huì)如何來做?


這是一道字符串模擬題。


題目要求將字符串 s 以 Z 字形排列并返回按行讀取后的字符串。


我們可以創(chuàng)建一個(gè)字符串?dāng)?shù)組,其中每一行都是一個(gè)字符串。接下來,我們可以使用雙重循環(huán)遍歷字符串 s,并將字符添加到對(duì)應(yīng)的行中。


最后,我們將這些字符串按順序拼接起來,以得到按行讀取后的字符串。


代碼實(shí)現(xiàn)如下:

string convert(string s, int numRows) { ? ?if (numRows == 1) return s; ? ?vector<string> rows(min(numRows, int(s.size()))); ? ?int curRow = 0; ? ?bool goingDown = false; ? ?for (char c : s) { ? ? ? ?rows[curRow] += c; ? ? ? ?if (curRow == 0 || curRow == numRows - 1) goingDown = !goingDown; ? ? ? ?curRow += goingDown ? 1 : -1; ? ?} ? ?string ret; ? ?for (string row : rows) ret += row; ? ?return ret; }

這道題是一道非常有趣且有啟發(fā)性的題目,可以幫助我們提高我們的字符串模擬能力。


字符串模擬算法題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
绥滨县| 县级市| 措美县| 乌海市| 望江县| 富宁县| 玛沁县| 绍兴县| 濮阳县| 大关县| 龙海市| 嵩明县| 榕江县| 黄平县| 柞水县| 喜德县| 揭西县| 鄂尔多斯市| 伊金霍洛旗| 自治县| 高雄市| 同德县| 佛教| 聂荣县| 嘉峪关市| 桂林市| 石家庄市| 肇东市| 栾城县| 建昌县| 肃南| 吴忠市| 遵化市| 平江县| 开化县| 鄂州市| 日喀则市| 泰宁县| 临猗县| 民县| 若尔盖县|