Palindrome 프로그램 Python

⚡ 스마트 요약

회문 프로그램 Python 문자열이나 숫자가 앞뒤로 읽었을 때 같은지 확인합니다. 일반적인 접근 방식으로는 역방향 슬라이싱, 플래그 비교, 문자 반전, 문자 일치, 재귀 및 while 루프 기법이 있으며, 이는 텍스트와 숫자 값 모두에 적용됩니다.

  • 🔁 정의: 회문은 단어든 숫자든 앞뒤로 읽어도 같은 문장입니다.
  • ✂️ 슬라이싱 및 깃발: Reverse 루프를 사용하여 문자열을 처리하거나, 플래그를 사용하여 불일치를 조기에 감지할 수 있습니다.
  • 🔄 재귀와 반복문: 재귀 호출과 while 루프는 모듈로 연산과 정수 나눗셈을 사용하여 숫자를 역순으로 만듭니다.
  • ⚡ 효율성 : 두 포인터 방법은 O(n) 시간과 O(1) 공간에서 내부 끝을 비교합니다.
  • 🤖 AI의 관련성: 회문 논리는 자연어 처리 전처리, DNA 검사 및 머신 러닝 면접 연습에 도움이 됩니다.

Palindrome 프로그램 Python

Palindrome 프로그램이란? Python?

Palindrome은 위치가 바뀌어도 같은 값을 표시하는 문자열이나 숫자로 정의할 수 있습니다. 간단히 말해서, 반전해도 변경되지 않은 상태로 유지됩니다.

Example: deed, 101

반대 단어와 실제 단어(숫자 또는 문자열)를 비교하면 동일한 결과가 나타납니다.

회문의 종류

In Python 언어, Palindrome은 아래와 같이 세 가지 유형이 있습니다.

  • 다중 단어 회문: 이는 원래 단어와 반전된 단어의 값이 동일한 여러 단어의 조합입니다.
  • 단일 단어 회문: 원어와 반전어의 값이 동일한 단일어입니다.
  • 숫자 회문: 이것은 원래 숫자와 반전된 숫자의 값이 같은 숫자입니다. 주어진 입력은 정방향이나 역방향에서 동일하게 유지됩니다.

회문 수에 대한 알고리즘 Python

다음 알고리즘은 팰린드롬 숫자를 확인하는 데 적용될 수 있습니다.

단계 1) 변수 선언을 'I'하고 변수를 읽습니다.

단계 2) 할당 'I'를 임시 변수 j로 보냅니다. 나는=j

단계 3) 아래 표시된 지침에 따라 루프를 수행합니다. –

  • 남=나% 10
  • L=L x 10 + M
  • 나 = 나 / 10

단계 4) 임시 변수를 l과 비교합니다. 엘==J.

단계 5) 조건이 만족되면 회문이 되도록 숫자를 인쇄합니다.

단계 6) 조건이 만족되지 않으면 숫자를 회문이 아닌 것으로 인쇄합니다.

단계 7) 종료

위 알고리즘은 팰린드롬 숫자에 적용됩니다. Python.

방법 1: 회문 수 Python 역방향 슬라이싱 사용

뒤로 슬라이싱 인 Python 일반적으로 원본 프로그램의 하위 집합 문을 사용하는 것이 포함됩니다. 하위 집합 문도 루프를 사용할 수 있습니다. Python의 회문 프로그램은 역슬라이싱이 가능합니다.

다음 파이썬 프로그램은 역방향 루프를 사용하여 문자열이 팰린드롬인지 여부를 판별합니다.

Palindrome 문자열 프로그램 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 설명 :

  • The Python 코드는 주 문자열의 길이와 빈 문자열 b를 역순으로 추가하려고 시도합니다. Python 범위 기능.
  • 그런 다음 문자열 b는 문자열 구분 기호를 사용하여 빈 문자열 rev와 결합됩니다. ".

방법 2: Palindrome 프로그램 Python 플래그 사용

플래그 변수는 다음에서 정의할 수 있습니다. Python 팰린드롬을 식별합니다. 플래그는 0으로 초기화됩니다. 다음 프로그램은 플래그 매개변수의 사용을 보여줍니다.

Python Code Palindrome 프로그램의 경우:

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: Palindrome을 확인하세요. 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: Palindrome을 확인하는 방법 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가 될 때까지 반복적으로 코드 실행을 수행합니다.

  • 반복 방법을 사용하여 정수 값이 회문인지 여부를 확인할 수 있습니다.
  • The 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 설명 :

  • 프로그램은 임시 숫자가 XNUMX보다 작은지 확인하는 while 루프를 활용합니다.
  • 모듈로 연산자는 원래 숫자의 나머지를 계산합니다.
  • 원래 숫자는 10으로 나누어집니다.
  • 역방향 매개변수는 10을 곱하여 계산됩니다.
  • 결과 숫자가 잔차에 추가됩니다.
  • 위 프로그램은 원래 숫자와 반대 숫자를 확인하여 회문인지 아닌지를 분류합니다.

자주 묻는 질문

s == s[::-1]을 사용하여 값을 역순으로 비교합니다. 이때 먼저 str() 함수를 사용하여 숫자를 역순으로 변환합니다. 방향이 일치하면 회문입니다.

두 포인터를 사용하는 방식은 시간 복잡도 O(n)과 공간 복잡도 O(1)로 메모리를 절약하지만, C 언어에서는 슬라이스 반전 방식이 일반적으로 가장 빠릅니다.Python.

한쪽 포인터는 앞쪽에, 다른 쪽 포인터는 뒤쪽에 위치하며, 두 포인터를 안쪽으로 비교합니다. 두 포인터가 만날 때까지 짝을 맞추면 회문임을 확인할 수 있습니다.

isalnum() 함수를 사용하여 텍스트를 소문자로 변환하고 영숫자만 남긴 다음, 그 역순으로 비교합니다. 띄어쓰기와 대소문자는 더 이상 중요하지 않습니다.

Reverse 슬라이스 s[::-1], reversed()와 “”.join()을 더하거나, 앞에 루프를 추가한 문자열을 만든 다음 원래 문자열과 비교합니다.

네. 단일 문자와 빈 문자열은 뒤집어도 동일하게 읽히므로 s == s[::-1]은 True를 반환합니다.

Reversal 논리는 NLP 전처리, 생물정보학 DNA 검사 및 특징 엔지니어링을 지원합니다. 다음과 같은 라이브러리가 있습니다. 눔 파이 머신러닝을 위해 이러한 대칭성 테스트를 벡터화합니다.

네. GitHub Copilot과 같은 AI 도우미는 프롬프트에서 슬라이싱, 투포인터, 재귀 또는 반복문 버전을 생성합니다. 항상 예외적인 경우를 먼저 검토하세요.

이 게시물을 요약하면 다음과 같습니다.