主題

LeetCode - 917. Reverse Only Letters 解題心得

Not In My Back Yard | 2021-02-13 00:00:02 | 巴幣 0 | 人氣 31

題目連結:


題目意譯:
給定一個字串 S ,回傳「反轉」後的字串,其中不是字母的停留於原地,而將其他是字母的反轉它們的位置。

注:
S.length ≦ 100
33 ≦ S[i].ASCIIcode ≦ 122
S 不包含 \ 或 "



範例測資:
範例 1:
輸入: "ab-cd"
輸出: "dc-ba"

範例 2:
輸入: "a-bC-dEf-ghIj"
輸出: "j-Ih-gfE-dCba"

範例 3:
輸入: "Test1ng-Leet=code-Q!"
輸出: "Qedo1ct-eeLg=ntse-T!"


解題思維:
有點像這題,該題是判斷給定的字串是否為迴文,且同樣也是忽略非英文字母(不過該題數字也算作迴文的範圍內,而本題不是)。

而我們也可以同樣使用兩個指標 L 、 R ,前者指向 S 的開頭、後者指向 S 的結尾。

然後每次就是讓 L 一直往結尾跑直到遇見第一個是英文字母之字元、 R 也類似地往開頭一直跑直到遇到第一個是英文字母字元,然後將 L 、 R 兩者指到的字元交換,重複此步驟直到 L ≧ R。

而此時 S 的內容即為所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作