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

文字列のアナグラムがPythonで回文であるかどうかを確認します


文字列sがあるとします。その文字列のアナグラムが回文を形成しているかどうかを確認する必要があります。

したがって、入力がs ="aarcrec"のような場合、出力はTrueになります。この文字列の1つのアナグラムは、回文である"racecar"です。

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

  • freq:=すべての文字とその頻度を保存するためのマップ
  • odd_count:=0
  • freqのすべての値のリスト内の各fについて、実行します
    • fが奇数の場合、
      • odd_count:=odd_count + 1
  • odd_count> 1の場合、
    • Falseを返す
  • Trueを返す

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

from collections import defaultdict
def solve(s):
   freq = defaultdict(int)
   for char in s:
      freq[char] += 1
   odd_count = 0
   for f in freq.values():
      if f % 2 == 1:
         odd_count += 1
   if odd_count > 1:
      return False
   return True
s = "aarcrec"
print(solve(s))

入力

"aarcrec"

出力

True

  1. 指定された文字列がキーワードであるかどうかを確認するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数値が与えられているので、その数値が2の累乗であるかどうかを確認する必要があります。 キーワードは、特定の用途で任意の言語によって予約されている特別な単語であり、識別子として使用することはできません。 指定された文字列がキーワードであるかどうかを確認するために、以下で説明するようにキーワードモジュールを使用しました。 例 # keyword module import keyword # Function def isKeyword(word) :    # list of all

  2. 文字列が回文であるかPythonを使用していないかを確認する方法は?

    Pythonの標準ライブラリのreveresed()関数を使用します。リストオブジェクトに変換できる反転オブジェクトを返します >>> str1='malayalam' >>> l1=list(reversed(str1)) >>> l1 ['m', 'a', 'l', 'a', 'y', 'a', 'l', 'a', 'm'] join()メソッドを使用してリスト内のすべての文字