用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"