双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

(每日一练28744)题目名称:字符串全排列

文盲老顾 文盲老顾 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

对K个不同字符的全排列组成的数组, 面试官从中随机拿走了一个, 剩下的数组作为输入, 请帮忙找出这个被拿走的字符串? 比如[“ABC”, “ACB”, “BAC”, “CAB”, “CBA”] 返回 “BCA”

在 python 里有一个 itertools 包,可以非常方便的生成全排列。。。

import itertools
n = int(input())
s = [input() for _ in range(n)]
if n > 0:
    t = {''.join(v) for v in itertools.permutations(list(s[0]),len(s[0]))}
    print(*(t - set(s)))

其他语言没有方便的生成全序列的办法,但是,可以变通一下,因为只少了一个,所以,我们将以后得内容逆序排列一下,如果不存在于已有数据中,则这个逆序就是丢失的内容

n = parseInt(readline())
arr = Array.from(new Array(n)).map(x => readline())
if (n){
    print(arr.filter(x => !arr.includes(x.match(/./gi).sort(x => -1).join('')))[0].match(/./gi).sort(x => -1).join(''))
}
...全文
评论 1
收藏 已收藏
分享
返回顶部
文盲老顾
文盲老顾 新星创作者: 信息安全技术领域 新星创作者: 信息安全技术领域领域专家: 数据库技术领域 领域专家: 数据库技术领域
老顾的一亩三分地 320 成员 160 内容