题目要求
输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。
输入样例1:
level
输出样例1:
level
Yes
输入样例2:
1 + 2 = 2 + 1 =
输出样例2:
1 + 2 = 2 + 1 =
No
代码+注释
s=input()#输入
res='No'#将res初始化为No
t=s#保存原来的字符串
s=list(s)#将字符串转换为序列
s.reverse()#倒置
s=''.join(s)#将倒置后的序列聚合为字符串
print(t)#输出原字符串
#若原字符串和倒置后的字符串相等,则将Yes赋值给res
if(s==t):
res='Yes'
print(res)#输出
代码结果
总结
数据处理步骤:1.保存原字符串,因为无论是否回文,都要输出原字符串的
2.将字符串倒置与原字符串进行比较,若相等则为Yes
关键在于字符串的倒置,我采用了列表的reverse()方法,所以需要先将字符串转换为列表,倒置后再转换为字符串
题外话
方法可能略显繁琐,但我感觉比较直观,也是我第一时间想到的,我相信大多数人想到回文也应该是先把它倒过来,然后与原来的比较,当然这不考虑时间和空间复杂度。