测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A21794. 回文单词某同学收集了很多单词,不同的单词之间用'-'拼接在一起,如'refer-level-face-',他发现有些单词如level,从左往右读和从右往左读该单词是一样的,称之为回文单词。他想统计他收集的单词中有多少个回文单词。步骤如下:(1)首先将单词按'-'分割出所有单词,(2)统计这些单词中回文单词的数量。编写的Python代码如下,完善划线处的代码。def revstr(str): if…

填空题 较难

题目描述

回文单词

某同学收集了很多单词,不同的单词之间用'-'拼接在一起,如'refer-level-face-',他发现有些单词如level,从左往右读和从右往左读该单词是一样的,称之为回文单词。他想统计他收集的单词中有多少个回文单词。步骤如下:(1)首先将单词按'-'分割出所有单词,(2)统计这些单词中回文单词的数量。编写的Python代码如下,完善划线处的代码。

def revstr(str):
    if len(str) == 1:
        return ________①_________                
    else:
        return ________②_________                 
word = 'refer-level-face-'
wordlst = []
s = ''
for t in word:
    if t !='-':
         ________③_________                
    else:
        wordlst.append(s)
        s = ''
c = 0
for w in wordlst:
    rev = revstr(w)
    if  ________④_________ :
        c += 1
print('对称的字符串个数有',c)

参考答案

def revstr(str): if len(str) == 1: return str else: return revstr(str[1:]) + str[0] word = 'refer-level-face-' wordlst = [] s = '' for t in word: if t !='-': s += t else: wordlst.append(s) s = '' c = 0 for w in wordlst: rev = revstr(w) if w == rev: c += 1 print('对称的字符串个数有',c)

答案解析

评分标准:

(1)str(或等效答案); (2分)

(2)revstr(str[1:]) + str[0](或等效答案);(3分)

(3)s += t 或 s = s + t(或等效答案); (2分)

(4)w == rev(或等效答案)。(3分)

上一题 下一题