题目描述
给定一个字符串,问是否能通过添加一个字母将其变为回文串。
输入描述:
一行一个由小写字母构成的字符串,字符串长度小于等于10。
输出描述:
输出答案(YES\NO).
输入例子:
coco
输出例子:
YES
分析:
回文串是指从左向右读一个字符串和从右向左读一个字符串是相同的
要判断一个字符串是不是回文串有很多方法
比如先逆序然后比较
或者从中间向两边比较
或者从两边向中间比较
这里我选择的是从中间向两边进行比较
废话不多说,上代码,用python实现:
输出示例:
E:\Python27\python.exe D:/python/python算法/HuiWen.py
aaabbb
NO
Process finished with exit code 0
E:\Python27\python.exe D:/python/python算法/HuiWen.py
CbAAbC
YES
Process finished with exit code 0
给定一个字符串,问是否能通过添加一个字母将其变为回文串。
输入描述:
一行一个由小写字母构成的字符串,字符串长度小于等于10。
输出描述:
输出答案(YES\NO).
输入例子:
coco
输出例子:
YES
分析:
回文串是指从左向右读一个字符串和从右向左读一个字符串是相同的
要判断一个字符串是不是回文串有很多方法
比如先逆序然后比较
或者从中间向两边比较
或者从两边向中间比较
这里我选择的是从中间向两边进行比较
废话不多说,上代码,用python实现:
#-*-:coding:UTF-8-*- s = raw_input() n = len(s) leap = 1#布尔变量 if n % 2 == 0:#如果字符串长度为偶数,那么就全部比较 for i in range(len(s)/2 - 1): if s[i] == s[len(s)-1-i]:# i + len(s) -1 -i = len(s)-1 continue else: leap = 0 break if n % 2 == 1:#如果字符串长度为奇数,那么就不管最中间的元素, # 只比较其他的元素是否相等。 for i in range((len(s)-1)/2 - 1): if s[i] == s[len(s)-1-i]: continue else: leap = 0 break if leap == 1: print 'YES' else: print 'NO'
输出示例:
E:\Python27\python.exe D:/python/python算法/HuiWen.py
aaabbb
NO
Process finished with exit code 0
E:\Python27\python.exe D:/python/python算法/HuiWen.py
CbAAbC
YES
Process finished with exit code 0