僅僅反轉字母

2022-06-07 12:51:11 字數 940 閱讀 5213

遇到出入順序的問題,可以用棧

方法 1:字母棧

想法和演算法

將 s 中的所有字母單獨存入棧中,所以出棧等價於對字母反序操作。(或者,可以用陣列儲存字母並反序陣列。)

然後,遍歷 s 的所有字元,如果是字母我們就選擇棧頂元素輸出。

class solution:

def reverseonlyletters(self, s: str) -> str:

# 使用字母棧

letters = [c for c in s if c.isalpha()]

ans =

print(letters)

for c in s:

if c.isalpha():

else:

return "".join(ans)

方法 2:反轉指標想法乙個接乙個輸出 s 的所有字元。當遇到乙個字母時,我們希望找到逆序遍歷字串的下乙個字母。

所以我們這麼做:維護乙個指標 j 從後往前遍歷字串,當需要字母時就使用它。

class solution:

def reverseonlyletters(self, s: str) -> str:

# 反轉指標

ans =

j = len(s) - 1

for i, x in enumerate(s):

if x.isalpha():

while not s[j].isalpha():

j -= 1

j -= 1

else:

return ''.join(ans)

僅僅反轉字母

簡單 class solution def reverseonlyletters self,s param s str return str s list s s alpha i for i in s if i.isalpha reversed alpha list reversed s alpha...

僅僅反轉字母

給定乙個字串 s,返回 反轉後的 字串,其中不是字母的字元都保留在原地,而所有字母的位置發生反轉。示例 1 輸入 ab cd 輸出 dc ba 示例 2 輸入 a bc def ghij 輸出 j ih gfe dcba 示例 3 輸入 test1ng leet code q 輸出 qedo1ct ...

僅僅反轉字母

題目 給定乙個字串 s,返回 反轉後的 字串,其中不是字母的字元都保留在原地,而所有字母的位置發生反轉。方法一 雙指標遍歷字串陣列,不是字母,指標移動,當兩個指標指向都為字母時,就交換兩個字母。class solution elseif character.isletter a right else...