回文プログラム Python

⚡ スマートサマリー

パリンロームプログラム Python 文字列や数値が順方向と逆方向で同じかどうかをチェックします。一般的な手法としては、後方スライス、フラグ比較、文字反転、文字マッチング、再帰、whileループなどがあり、テキストと数値の両方に適用できます。

  • 🔁 定義: 回文とは、単語であれ数字であれ、前から読んでも後ろから読んでも同じになる文のことである。
  • ✂️ スライスとフラグ: Reverse ループを使って文字列を処理するか、フラグを使って不一致を早期に検出します。
  • 🔄 再帰とループ: 再帰呼び出しとwhileループは、剰余演算と整数除算を使用して数値を反転させます。
  • ⚡ 効率性: 1ポインタ方式では、O(n)の時間でO(n)の空間で両端を内側に比較します。
  • 🤖 AIとの関連性: 回文論理は、自然言語処理の前処理、DNA鑑定、機械学習を用いた面接練習に役立ちます。

回文プログラム Python

回文プログラムとは Python?

回文は、位置を反転しても同じ値を表示する文字列または数値として定義できます。 簡単に言うと、反転しても変化しないということです。

Example: deed, 101

逆引きした単語と実際の単語 (数値または文字列) を比較すると、同じ結果が得られます。

回文の種類

In Python 言語, 回文には以下のXNUMX種類があります。

  • 複数の単語の回文: これは、元の単語と反転した単語の値が同じである複数の単語の組み合わせです。
  • 単一単語の回文: これは、元の単語と反転した単語の値が同じである単一の単語です。
  • 数字の回文: これは、元の数値と反転した数値が同じ値になる数値です。与えられた入力は、前方から見ても後方から見ても同じままです。

回文数を求めるアルゴリズム Python

回文数を確認するには、次のアルゴリズムを適用できます。

ステップ1) ' として変数宣言を実行します。I' そして変数を読み取ります。

ステップ2) 割当 'I' を一時変数 j に渡します。 i=j

ステップ3) 以下に示す手順でループを実行します。 –

  • M=I%10
  • L=長さ×10+中
  • I = I / 10

ステップ4) 一時変数と l を比較します。 L==J.

ステップ5) 条件が満たされた場合に回文となる数値を出力します。

ステップ6) 条件が満たされない場合は、数値を回文ではないものとして出力します。

ステップ7) 終わり

上記のアルゴリズムは、回文数に適用される。 Python.

方法1: 回文数 Python 後方スライスの使用

後方へのスライス Python 通常は、元のプログラムのサブセット ステートメントを使用します。サブセット ステートメントではループも使用できます。 Pythonの回文プログラムは後方スライスすることができます。

次の Python プログラムは、後方ループを使用して文字列が回文であるかどうかを判断します。

回文文字列プログラム Python コー​​ド:

a='deed'
lena=len(a)
b=[]
for i in range(lena - 1, -1, -1):
    b.append(a[i])
rev = "".join(b)
print(a + " is: ", end="")
if a == rev:
    print("Palindrome")
else:
    print("Not Palindrome")

出力:

deed is: Palindrome

Code 説明:

  • その Python コードは、メイン文字列の長さと Python 範囲関数。
  • 次に、文字列 b が文字列区切り文字を使用して空の文字列 rev と結合されます。 .

方法2: 回文プログラム Python フラグの使用

フラグ変数は以下で定義できます。 Python 回文を識別します。フラグは 0 に初期化されます。次のプログラムは、フラグ パラメータの使用方法を示しています。

Python Code 回文プログラムの場合:

Pld = "deed"
m = -1
flag = 0
for char in Pld:
    if char != Pld[m]:
        flag = 1
        break
    m = m - 1
print(Pld + " is: ", end="")
if flag:
    print("Not Palindrome")
else:
    print("Palindrome")
print(flag)

出力:

deed is: Palindrome

0

Code 説明:

  • チャーの Python インデックスは 0 から始まります。
  • m は -1 に初期化されているため、文字列は負のインデックスとして逆から読み取られます。
  • if ステートメントを使用した for ループは、文字列内に存在するインデックス 0 で始まる各文字が文字列の逆インデックスと一致するかどうかをチェックします。
  • ただし、一致しない場合は、プログラムはフラグを 1 に初期化し、一致する場合は 0 に初期化します。

方法3: 回文をチェックする Python 文字を逆にして

この回文プログラムでは、charメソッドを使用して文字列を反転します。 Python元の文字列を逆順に照合して、文字列が回文であるかどうかを判断します。

Python 回文プログラム Code:

Base = "123"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "101"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "deed"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))

出力:

Not Palindrome
The original string is: 123
The reverse string is: 321
Palindrome
The original string is: 101
The reverse string is: 101
Palindrome
The original string is: the deed
The reverse string is: the deed

Code 説明:

  • Pythonの str 関数は、数値形式を文字列形式に変換するのに役立ちます。プログラムはまず、値 123 が回文かどうかを確認します。
  • 次に、値 101 と証書の文字列値をチェックします。
  • コードは、数値形式と文字列形式の両方について、値が回文であるかどうかをチェックします。

方法4: 回文をチェックする方法 Python 文字マッチングを使用する

この回文メソッドでは、プログラムは、for ループ、range 関数、および Len 関数を使用して、文字列内の各文字が逆文字列と一致するかどうかをチェックします。

Python コー​​ド:

def PalindromeComparator(original):
    for i in range(0, len(original)):
        if original[i] != original[len(original) - i - 1]:
            return False
            return True
Base = "deed"
print("Palindrome") if PalindromeComparator(Base) else print("Not Palindrome")

出力:

Not Palindrome

Code 説明:

  • Palindrome Comparator というラベルの付いたユーザー定義関数は、値が文字列であるかどうかをチェックします。
  • このプログラムは、基準を使用して元の文字列と元の文字列の逆順を比較します。 original[i]!= original[len(original) – i – 1].
  • 上記のプログラムは、長さ手法を利用して文字列の長さを決定します。

方法5: 回文 Python 再帰を使用する

In Python再帰とは、関数が特定の基準に従って繰り返し自身を呼び出すことを意味します。このようにして、同じ関数構造を使用して問題をより小さな問題に分割することができます。再帰プログラミングロジックを使用することで、回文文字列もチェックできます。

Python コー​​ド:

def palcomprec(number, oppo):
    if number == 0:
        return oppo
    remainder = int(number % 10)
    oppo = (oppo * 10) + remainder
    return palcomprec(int(number / 10), oppo)
Base = 12321
reverse = 0
reverse = palcomprec(Base, reverse)
print(str(Base) + " is: ", end="")
print("Palindrome") if reverse == Base else print("Not Palindrome")

出力:

12321 is: Palindrome

Code 説明:

  • このプログラムは、それ自体を再帰的に呼び出すユーザー定義関数を利用します。
  • 元の数値が分解され、その残りの値が反対の値に加算されます。
  • 反対の値は、剰余の値を加算する前に、まず 10 で乗算されます。

方法 6: While ループを使用して回文を確認する方法

while ループは、適用された条件が true になるまで、反復ベースでコードの実行を実行します。

  • 反復法を使用して、整数値が回文であるかどうかを確認できます。
  • その Python プログラムは一時的な数値とモジュロ演算子を利用します。

Python コー​​ド:

original = 101
temporary = original
reverse = 0
while temporary > 0:
    remainder = temporary % 10
    reverse = (reverse * 10) + remainder
    temporary = temporary // 10
if original == reverse:
  print('Palindrome')
else:
  print("Not Palindrome")

出力:

Palindrome

Code 説明:

  • このプログラムは、一時的な数値がゼロより小さいかどうかをチェックする while ループを利用します。
  • モジュロ演算子は元の数値の余りを計算します。
  • 元の数値を 10 で割ります。
  • 逆パラメータは 10 を乗算して計算されます。
  • 結果の数値が残差に加算されます。
  • 上記のプログラムは、元の数と逆の数をチェックして、回文かどうかを分類します。

よくあるご質問

s == s[::-1] を使用して、値を逆順と比較します。まず、str() 関数で数値を変換します。方向が一致すれば回文となります。

2ポインタ方式はO(n)の時間計算量とO(1)の空間計算量でメモリを節約できるが、C言語では通常スライス反転が最も高速である。Python.

一方のポインターは先頭から、もう一方は末尾から始まり、内側に向かって比較されます。一致するペアが見つかるまで比較を続けることで、回文であることが確認されます。

isalnum() 関数を使ってテキストを小文字に変換し、英数字のみを残してから、それを逆にしたものと比較します。スペースや大文字・小文字は関係なくなります。

Reverse スライス s[::-1]、reversed() と “”.join()、または先頭ループを含む文字列を生成し、それを元の文字列と比較します。

はい。1文字と空文字列は逆順に読むと同じなので、s == s[::-1] は True を返します。

Reversal ロジックは、NLP の前処理、バイオインフォマティクスの DNA チェック、および特徴エンジニアリングを推進します。 NumPy 機械学習のために、これらの対称性テストをベクトル化する。

はい。GitHub Copilotや同様のAIアシスタントは、プロンプトからスライス、2ポインタ、再帰、ループなどのバージョンを生成します。必ず最初にエッジケースを確認してください。