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

文字列のサフィックスとプレフィックスがPythonの回文であるかどうかを確認します


文字列sがあるとすると、その文字列の回文が接頭辞と接尾辞の部分文字列として使用されているかどうかを確認する必要があります。

したがって、入力がs ="levelishighforracecar"のような場合、回文の接頭辞と接尾辞がそれぞれ「level」と「racecar」であるため、出力はTrueになります。

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

  • l:=sのサイズ
  • 2からl+2の範囲のiについては、
    • インデックスiまでのsの部分文字列が回文である場合、
      • ループから抜け出す
    • iが(l + 1)と同じ場合、
      • Falseを返す
    • 2からl+2の範囲のiについては、
      • インデックス(l-i)から(l-1)までのsの部分文字列が回文である場合、
        • Trueを返す
    • Falseを返す

理解を深めるために、次の実装を見てみましょう-

サンプルコード

def is_palindrome(s):
   return s == s[::-1]  
 
def solve(s):
   l = len(s)
   for i in range(2, l + 1):
      if is_palindrome(s[0:i]):
         break
     
   if i == (l + 1):
      return False
 
   for i in range(2, l + 1):
      if is_palindrome(s[l - i : l]):
         return True
     
   return False  

s = "levelishighforracecar"
print(solve(s))

入力

"levelishighforracecar"

出力

True

  1. Pythonで文字列が英数字かどうかを確認するにはどうすればよいですか?

    Python Stringクラスには、文字列に対して呼び出すことができるisalnum()というメソッドがあり、文字列が英数字のみで構成されているかどうかを通知します。次の方法で呼び出すことができます: >>> '123abc'.isalnum() True >>> '123#$%abc'.isalnum() False 同じ結果に正規表現を使用することもできます。アルファ数値を照合するには、正規表現 ^ [a-zA-Z0-9] + $を使用してre.match(regex、string)を呼び出すことができます。たとえば、

  2. Pythonで文字列または文字列のサブ文字列がサフィックスで終わっているかどうかを確認するにはどうすればよいですか?

    Pythonには、Stringクラスにendswith(string)メソッドがあります。このメソッドは、検索するサフィックス文字列を受け入れ、文字列オブジェクトで呼び出されます。このメソッドは次の方法で呼び出すことができます: string = 'C:/Users/TutorialsPoint1/~.py' print(string.endswith('.py')) 出力 True 文字列が特定のサフィックスで終わっているかどうかを確認する別の方法があります。これを行うには、reモジュール(正規表現)からre.search(suffix +$、string