方法一:将字符串分成两半,将第一个和最后一个字符进行比较,若一样则返回True.全部为True则为回文联
1 def isPalindrome(): 2 context = input("请输入字符串:") 3 len_half = len(context) // 2 #取长度的一半 4 bool_list = [] 5 if len(context) < 2: #当输入小于2个字符时,返回 6 return "%s 不是回文联" % context 7 for n in range(len_half): 8 if context[n] == context[-(n+1)]: #第一个字符和最后一个字符比较,第二个和倒数第二个比较... 9 bool_con = True 10 bool_list.append(bool_con) 11 else: 12 bool_con = False 13 bool_list.append(bool_con) 14 if False not in bool_list: #列表中全是True则为回文联 15 return "'%s'是回文联" % context 16 else: 17 return "'%s'不是回文联" % context 18 19 print(isPalindrome())
方法二:将字符串分成两半,直接判断前一字符串和后半字符串是否相同,若相同则为回文联。--by 孟楠兄
1 def isSymmetry(): 2 while True: 3 inStr = input("请输入:").strip() 4 cut = len(inStr) // 2 5 if inStr[:cut][::-1] == inStr[-cut:]: 6 print('回文联') 7 break 8 else: 9 print('非回文联') 10 11 isSymmetry()
方法三:直接翻转,判断是否相同,若相同则为回文联。--by 书明兄
1 def fu(): 2 lc = ''.join(list(reserved(ID))) 3 if lc == ld: 4 print("是回文联") 5 else: 6 print('非回文联') 7 8 ld = input("请输入:") 9 fu()