五月天青色头像情侣网名,国产亚洲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)遵守國家法律
克东县| 玉门市| 巧家县| 五指山市| 尼勒克县| 鹤岗市| 丹棱县| 从化市| 武平县| 依安县| 惠州市| 将乐县| 抚宁县| 江口县| 汝阳县| 广灵县| 宜章县| 兴城市| 荔波县| 宜昌市| 维西| 舞阳县| 大厂| 石城县| 大名县| 洞口县| 涡阳县| 贡觉县| 塔河县| 甘孜县| 正镶白旗| 阳朔县| 延边| 东丰县| 蒲江县| 寻甸| 克东县| 冀州市| 乌审旗| 福建省| 汉寿县|