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

A25721. 提示信息:字典序大小,是指字符串中字母在字母表中的先后顺序,即字母表中越靠前的字母,字典序越小。例如:两个字符串acd和cad,两个字符串的第一个字母分别为"a"和"c",其中"a"在字母表中排在"c"的前边,故字符串acd字典序小与字符串cad。假如第一个字母相同,就比较第二个字母,以此类推。编程实现:给定一个长度小于200的字符串S,且字符串中只包含小写字母,然后按照以下要求对字符串S进行去…

填空题 较易

题目描述

提示信息:

字典序大小,是指字符串中字母在字母表中的先后顺序,即字母表中越靠前的字母,字典序越小。

例如:两个字符串acd和cad,两个字符串的第一个字母分别为"a"和"c",其中"a"在字母表中排在"c"的前边,故字符串acd字典序小与字符串cad。假如第一个字母相同,就比较第二个字母,以此类推。

编程实现:

给定一个长度小于200的字符串S,且字符串中只包含小写字母,然后按照以下要求对字符串S进行去重,并输出去重后的字符串。

要求:

1)如果有重复出现的字母,只保留1个,其他的去掉;

2)不得改变各字母相对位置;

3)保证去重后的字符串的字典序最小。

例如:

S=“cacd”,重复的字母有c,如果去掉第一个字母c,结果为acd;如果去掉第二个字母c结果为cad,比较两个去重后的结果,第一个结果的字典序小于第二个结果的字典序,故选择去掉第一个c,输出acd。

输入描述:

输入一个长度小于200的字符串S,且字符串中只包含小写字母

输出描述:

按照要求对字符串S进行去重,并输出

样例输入:

cdacd

样例输出:

acd

参考答案

def cstr(str1): return ord(str1)-96 def Remove(str1): if str1=='' or len(str1)==1: return str1 m=[0]*27 for i in range(len(str1)): m[cstr(str1[i])]+=1 min_idx=0 for i in range(len(str1)): m[cstr(str1[i])]-=1 if cstr(str1[i])<=cstr(str1[min_idx]): min_idx=i if m[cstr(str1[i])]==0: break return str1[min_idx]+Remove(str1[min_idx+1:].replace(str1[min_idx],'')) s=input() print(Remove(s))

答案解析

评分标准:  

7分:能正确输出一组数据;

7分:能正确输出两组数据;

8分:能正确输出三组数据;

8分:能正确输出四组数据。

上一题 下一题