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循环开始,如果起始和结束元素相等,则起始值递增,结束值递减。
  • 否则,flag变量赋值为1,并跳出循环。
  • 如果flag的值为0,则字符串为回文,否则不是。
  • 定义了另一个名为“check_symmetry”的方法,该方法将字符串作为参数。
  • 字符串的长度赋值给一个变量。
  • 如果长度和2的余数不为0,则更改中间值。
  • 再次更改起始值和中间值。
  • 使用另一个“while”条件,并再次更改起始值。
  • 如果flag的值为0,则字符串被认为是对称的。
  • 否则不是。

更新于:2021年3月12日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告