Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字のみを反転する


文字列Sがあるとすると、文字ではないすべての文字が位置を変更せず、すべての文字が位置を反転する反転文字列を見つける必要があります。したがって、指定された文字列が「a-bC-dEf-ghIj」の場合、出力は「j-Ih-gfE-dCba」になります

これを解決するには、次の手順に従います-

  • これを解決するために正規表現ライブラリを使用します
  • Sが空の場合は、Sを返します
  • str:=空の文字列、index1:=0およびindex2:=S –1の長さ
  • whileindex1
  • 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増やします
  • それ以外の場合は、インデックス2を1減らし、インデックス1を1増やします
  • return 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"

    1. Pythonで文字列に大文字のみが含まれているかどうかを確認するにはどうすればよいですか?

      文字列に大文字のみが含まれているかどうかは、2つの方法で確認できます。 1つ目は、メソッドisupper()を使用することです。 例 print( 'Hello world'.isupper()) print('HELLO'.isupper()) 出力 False True 同じ結果に正規表現を使用することもできます。大文字のみを照合する場合は、正規表現 ^ [A-Z] + $を使用してre.match(regex、string)を呼び出すことができます。 例 import re print(bool(re.match('^[A-Z]+$',

    2. Pythonで文字列に小文字のみが含まれているかどうかを確認するにはどうすればよいですか?

      2つの方法を使用して、文字列に小文字のみが含まれているかどうかを確認できます。 1つ目は、メソッドislower()を使用することです。 例: print('Hello world'.islower()) print('hello world'.islower()) 出力 False True 同じ結果に正規表現を使用することもできます。小文字のみを照合する場合は、正規表現 ^ [a-z] + $を使用してre.match(regex、string)を呼び出すことができます。たとえば、 print(bool(re.match('^[a-z]+$&#