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,则字符串被认为是对称的。
- 否则不是。
广告