用Python反转字母
假设我们有一个字符串S,我们必须找到相反的字符串,其中所有非字母的字符都不会改变其位置,而所有字母都将其位置反转。因此,如果给定的字符串是“a-bC-dEf-ghIj”,则输出将是“j-Ih-gfE-dCba”
为了解决这个问题,我们将遵循以下步骤-
我们将使用正则表达式库解决此问题
如果S为空,则返回S
str:=空字符串,index1:=0,index2:=S–1的长度
而index1<S的长度
str:=str+S[index2]
将index2减少1,并将index1增加1
如果index2>=0并且S[index1]是字母,而S[index2]是字母
否则,如果S[index1]是字母,则将index2减1
否则,如果S[index1]不是字母,则str:=str+S[index1],将index1加1
否则将index2减少1,并将index1增加1
返回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"