回文字符串就是正读和反读都一样的字符串,如“viv”、“nexen”、“12321”、“qqq”、“翻身把身翻” 等。
给定一个非空字符串 str,在最多可以删除一个字符的情况下请编程判定其能否成为回文字符串;如果可以则输出首次删除一个字符所能得到的回文字符串,如果不行则输出字符串 "false" 。
一个非空字符串
一个回文字符串,或者 "false" 字符串(如果无法构造出回文字符串的话)
abda
ada
删除字符串"abda"中的一个字符 ‘b’ 后,得到 "ada"是一个回文字符串;删除一个字符 ‘d’ 后,得到 "aba"也是一个回文字符串;所以最终输出为 "ada"。
1、输入仅包含数字或字母;2、当分别删除不同的字符后,均可得到回文字符串时,输出首次删除一个字符所得到的回文字符串;若无法构造出回文字符串,则输出字符串false;
while 1: try: s = input() flag = 0 if s[1:] == s[1:][::-1]: flag =1 print(s[1:][::-1]) elif s[:-1] == s[:-1][::-1]: flag =1 print(s[:-1][::-1]) else: for i in range(1,len(s)-1): new = s[0:i]+s[i+1:] if new == new[::-1]: print(new) flag = 1 break if flag == 0: print("false") except: break
s = input() # 获得输入 def judge(s): for i in range(0, int(len(s) / 2)): # 左右元素比较 if s[i] == s[len(s) - 1 - i]: continue else: return 'false' return 'true' def test(s): if len(s) == 0: # 长度为0 return 'false' for i in range(0, len(s)): str1 = s[:i] + s[i + 1:] # 删除一位后得到str1 if judge(str1) == 'true': # str1 判断是否回文 return str1 else: continue return 'false' print(test(s))