Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
表4-1-5 问题分析Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【问题描述】Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
有字符串列表['xyx','abc','abba','1123'],输出列表中的所有回文串。回文串就是逆序排列其字符后与原来内容相同的字符串,如“xyx”和“abba”都是回文串。Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输出结果:Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
['xyx','abba']Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【题前思考】Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
根据问题描述,填写表4-1-5。Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【解题思路】Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
要输出列表中的回文串,首先需要判断每一个字符串是否是回文串,判断回文串的方法就是比较原串和逆序串,在项目三学习了使用字符串切片求逆序串的方法,即“字符串[::-1]”。之后再把回文串加入列表res中,最后输出结果。Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【程序代码】Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【代码分析】Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
①:将字符串存入列表a中。Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
②:产生一个空列表res,用于保存回文串。Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
③:将列表a中的回文串追加到列表res中。for s in a:的意思是对列表a中的每个项s执行循环体中的操作。if s==s[::-1]:res.append(s)表示如果字符串s与s的逆序串相等就将s追加到列表res。一个字符串与其逆序串相等,这个字符串就是回文串。Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【优化提升】Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
要输出列表中的回文串,也可以使用列表推导式,程序代码如下:Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
print([s for s in['xyx','abc','abba','1123']if s==s[::-1]])Itq100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库