1037字符串重复判断

题目描述

从一篇文章中取出 N 个字符串,这 N 个字符串构成一个数组(列表) A,假设每个字符串只包含小写字母,返回由数组 A 中每个字符串都包含的字符构成的字符串,字符串中的字母都按照字母序排列。

 

输入

输入一个列表,每个字符串都是由引号括起来的。

 

输出

输出一个符合题意的字符串,注意这个字符串包含双引号"

 

样例输入

['bella', 'label', 'roller']
 

样例输出

"ell"
 

提示

本题需要使用 ast 库的 literal_eval 方法来读入列表,参考资料:
https://blog.csdn.net/sinat_33924041/article/details/88350569

另外,本题还需要使用 sort() 函数进行排序。

解答

1.先找到输入列表中,长度最小的字符串

2.然后遍历这个最短的字符串(先转换成列表进行遍历)

3.遍历所有字符串,判断最短的字符串中的元素是否在其他字符串中存在

4.将得到的字串排序

lst = eval(input())
#找到长度最短的字符串lst[num]
num = 0
min = len(lst[0])
for i in range(len(lst)):
    if min > len(lst[i]):
        num = i
        min = len(lst[i])
#遍历lst[num]
tmpstr = ''
for i in range(min):
    #先将字符串转换为列表
    tmplst = list(lst[num])
    j = 0
    #遍历所有字符串,判断元素是否在其他字符串中同样存在
    flag = 0
    while j < len(lst):
        if tmplst[i] in lst[j]:
            pass
        else:
            flag = 1
            break
        j += 1
    if flag == 0:
        tmpstr += tmplst[i]
#对得到的tmpstr进行排序
#转换为ASCII码进行排序
lst1 = list(map(ord,tmpstr))
lst1.sort()
lst1 = list(map(chr,lst1))
tmpstr = ''.join(map(str,lst1))
print('"{}"'.format(tmpstr))

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值