最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
迁安市| 大港区| 长兴县| 克东县| 松滋市| 太原市| 绩溪县| 天峨县| 房产| 湟中县| 西宁市| 阿坝县| 济南市| 五峰| 碌曲县| 万年县| 张家界市| 巧家县| 枞阳县| 临高县| 威远县| 志丹县| 永年县| 陆川县| 和平县| 英德市| 延寿县| 时尚| 盐边县| 长沙市| 东平县| 长垣县| 沈丘县| 定兴县| 武定县| 会理县| 亳州市| 高邑县| 涞水县| 南京市| 定南县|