Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

문자열이 대칭인지 회문인지 확인하는 Python 프로그램

<시간/>

문자열이 대칭인지 회문인지 확인해야 하는 경우 'while' 조건을 사용하는 메서드를 정의할 수 있습니다. 'while'과 'if' 조건도 사용하는 대칭성을 확인하는 또 다른 방법이 정의되어 있습니다.

회문은 숫자 또는 문자열이며 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로 읽을 때 동일한 값입니다. 인덱스 값은 동일합니다.

아래는 동일한 데모입니다 -

def check_palindrome(my_str):
   mid_val = (len(my_str)-1)//2
   start = 0
   end = len(my_str)-1
   flag = 0
   while(start<mid_val):
   if (my_str[start]== my_str[end]):
      start += 1
      end -= 1
   else:
      flag = 1
      break;
   if flag == 0:
      print("The entered string is palindrome")
   else:
      print("The entered string is not palindrome")
def check_symmetry(my_str):
   n = len(my_str)
   flag = 0
   if n%2:
      mid_val = n//2 +1
   else:
      mid_val = n//2
   start_1 = 0
   start_2 = mid_val
   while(start_1 < mid_val and start_2 < n):
      if (my_str[start_1]== my_str[start_2]):
         start_1 = start_1 + 1
         start_2 = start_2 + 1
      else:
         flag = 1
         break
   if flag == 0:
      print("The entered string is symmetrical")
   else:
      print("The entered string is not symmetrical")
my_string = 'phphhphp'
print("The method to check a palindrome is being called...")
check_palindrome(my_string)
print("The method to check symmetry is being called...")
check_symmetry(my_string)

출력

The method to check a palindrome is being called...
The entered string is palindrome
The method to check symmetry is being called...
The entered string is not symmetrical

설명

  • 문자열을 매개변수로 사용하는 'check_palindrome'이라는 메서드가 정의되어 있습니다.
  • 가운데 값은 바닥을 2로 나누어 계산합니다.
  • 시작 값은 0에 할당되고 끝 값은 마지막 요소에 할당됩니다.
  • flag라는 변수는 0에 할당됩니다.
  • while 조건이 시작되고 시작 및 끝 요소가 같으면 시작 값이 증가하고 끝 값이 감소합니다.
  • 그렇지 않으면 플래그 변수가 1에 할당되고 루프에서 벗어납니다.
  • 플래그의 값이 0이면 문자열은 회문이고, 그렇지 않으면 아닙니다.
  • 문자열을 매개변수로 사용하는 'check_symmetry'라는 또 다른 메서드가 정의되어 있습니다.
  • 문자열의 길이가 변수에 할당됩니다.
  • 길이와 2의 나머지가 0이 아닌 경우 중간 값이 변경됩니다.
  • 시작값과 중간값이 다시 변경됩니다.
  • 또 다른 'while' 조건이 사용되며 시작 값이 다시 변경됩니다.
  • 플래그 값이 0이면 문자열이 대칭으로 간주됩니다.
  • 그렇지 않으면 그렇지 않습니다.