LeetCode 346 反轉字串中的母音字母

2021-10-06 23:57:16 字數 1604 閱讀 3072

編寫乙個函式,以字串作為輸入,反轉該字串中的母音字母。

輸入: 「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 ...