Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để kiểm tra xem chuỗi là Symmetrical hay Palindrome

Khi được yêu cầu kiểm tra xem một chuỗi có đối xứng hay đó là palindrome hay không, một phương thức có thể được xác định, sử dụng điều kiện ‘while’. Một phương pháp khác được xác định để kiểm tra tính đối xứng cũng sử dụng điều kiện ‘while’ và ‘if’.

Palindrome là một số hoặc chuỗi, khi đọc từ trái sang phải hoặc từ phải sang trái đều có cùng giá trị. Các giá trị chỉ mục giống nhau.

Ví dụ

Dưới đây là một minh chứng cho điều tương tự -

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)

Đầu ra

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

Giải thích

  • Một phương thức có tên là ‘check_palindrome‘ được xác định, lấy một chuỗi làm tham số.
  • Giá trị giữa được tính bằng cách thực hiện phép chia tầng với 2.
  • Giá trị bắt đầu được gán cho 0 và giá trị kết thúc được gán cho phần tử cuối cùng.
  • Cờ có tên biến được gán cho 0.
  • Điều kiện trong khi bắt đầu và nếu phần tử bắt đầu và phần tử kết thúc bằng nhau, giá trị bắt đầu sẽ tăng lên và giá trị kết thúc giảm xuống.
  • Nếu không, biến cờ được chỉ định cho 1 và biến này thoát ra khỏi vòng lặp.
  • Nếu giá trị của cờ là 0, thì chuỗi sẽ là palindrome, ngược lại thì không.
  • Một phương thức khác có tên 'check_symmetry' được xác định, phương thức này nhận một chuỗi làm tham số.
  • Độ dài của chuỗi được gán cho một biến.
  • Nếu phần còn lại của độ dài và 2 không phải là 0, giá trị giữa sẽ bị thay đổi.
  • Giá trị bắt đầu và giá trị giữa lại được thay đổi.
  • Một điều kiện 'while' khác được sử dụng và các giá trị bắt đầu lại được thay đổi.
  • Nếu giá trị của cờ là 0 thì chuỗi được coi là đối xứng.
  • Nếu không thì không.