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

文字列がPythonのColindromeであるかどうかを確認します


文字列sがあるとします。指定された文字列がcolindromeであるかどうかを確認する必要があります。回文は、6つの長さの回文の連結された文字列です。

したがって、入力がs ="aabbaamnoonm"の場合、出力はTrueになります。これには、「aabbaa」や「mnoonm」などの長さ6の回文が含まれているためです。

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

  • sのサイズが6の倍数でない場合、
    • Falseを返す
  • 範囲0からs-1のサイズのiの場合、6ずつ増やします。
    • s[インデックスiからi+5]が回文でない場合、
      • Falseを返す
  • Trueを返す

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

def is_palindrome(s):
   return s == s[::-1]
def solve(s):
   if len(s) % 6 != 0:
      return False
   for i in range(0, len(s), 6):
      if not is_palindrome(s[i : i+6]):
         return False
   return True
s = "aabbaamnoonm"
print(solve(s))

入力

"aabbaamnoonm"

出力

True

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

    最も簡単な方法は、文字列の文字をループして、各文字がASCIIであるかどうかを確認することです。 例 def is_ascii(s):     return all(ord(c) < 128 for c in s) print is_ascii('ӓmsterdӒm') 出力 これにより出力が得られます: False しかし、この方法は非常に非効率的です。より良い方法は、str.decode(ascii)を使用して文字列をデコードし、例外をチェックすることです。 例 mystring = 'ӓmsterdӓm' try:  

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

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