編寫乙個函式,以字串作為輸入,反轉該字串中的母音字母。
輸入: 「hello」
輸出: 「holle」
輸入: 「leetcode」
輸出: 「leotcede」
仍然可用一左一右的雙指標方法,當兩個指標都遍歷到母音字元時,交換這兩個母音字元,在while迴圈
中把所有情況考慮周全即可。
【注】python中字串可以通過下標訪問某個值,但不能直接修改它。所以我們需要先把字串轉換成列表,再對列表進行修改操作,最後再把列表轉換為字串返回。
class
solution
:def
reversevowels
(self, s:
str)
->
str:
vowel =
['a'
,'e'
,'i'
,'o'
,'u'
,'a'
,'e'
,'i'
,'o'
,'u'
] s1 =
list
(s)# 把字串轉換成列表
left =
0 right =
len(s)-1
while left < right:
if s1[left]
in vowel and s1[right]
in vowel:
s1[left]
, s1[right]
= s1[right]
, s1[left]
left +=
1 right -=
1elif s1[left]
in vowel:
right -=
1elif s1[right]
in vowel:
left +=
1else
: left +=
1 right -=
1 s=
''.join(s1)
# 把列表轉換為字串
return s
s1[left]
, s1[right]
= s1[right]
, s1[left]
# 可一起直接交換,不必用中間值替換
直接用list()
函式轉換
s1 =
list
(s)
如果用str()
函式直接轉換,會得到和原列表一樣的輸出,故需要用到join()
函式
s=
''.join(s1)
用replace()
函式,後者替換前者。
s=s.replace(
's[left]'
,'s[right]'
)# 用 s[right]替換 s[left]
leetcode 反轉字串
題目 編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸入hello...
LeetCode 反轉字串
題目描述 編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 示例1 輸入 h e l l o 輸出 ...
leetcode 反轉字串
class solution def reversestring self,s list str none do not return anything,modify s in place instead.l len s temp for i in range int l 2 temp s i s ...