Python 中僅反轉字母
假設我們有一個字串 S,我們需要找到一個反轉後的字串,其中所有不是字母的字元不會改變其位置,所有字母反轉其位置。因此,如果給定的字串是 "a-bC-dEf-ghIj",則輸出將是 "j-Ih-gfE-dCba"
為了解決這個問題,我們將遵循以下步驟 -
- 我們將使用正則表示式庫來解決這個問題
- 如果 S 為空,則返回 S
- str := 空字串,index1 := 0 且 index2 := S 的長度 – 1
- 當 index1 < S 的長度
- 如果 index2 >= 0 且 S[index1] 為字母且 S[index2] 為字母
- str := str + S[index2]
- 將 index2 減 1,並將 index1 加 1
- 否則,如果 S[index1] 為字母,則將 index2 減 1
- 否則,如果 S[index1] 不是字母,則 str := str + S[index1],將 index1 加 1
- 否則,將 index2 減 1,並將 index1 加 1
- 如果 index2 >= 0 且 S[index1] 為字母且 S[index2] 為字母
- 返回 str
示例
讓我們看看以下實現以獲得更好的理解 -
class Solution:
def reverseOnlyLetters(self, S):
if not S:
return S
str_= ""
index1 = 0
index2 = len(S)-1
while index1<len(S):
#print(index1,index2)
if index2>=0 and S[index1].isalpha() and S[index2].isalpha():
str_+=S[index2]
index2 -= 1
index1 += 1
elif S[index1].isalpha():
index2-=1
elif not S[index1].isalpha():
str_+=S[index1]
index1+=1
else:
index2 -= 1
index1 += 1
return str_
ob1 = Solution()
print(ob1.reverseOnlyLetters("a-bC-dEf-ghIj"))輸入
"a-bC-dEf-ghIj"
輸出
"j-Ih-gfE-dCba"
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP