题解 | #查找兄弟单词#DFS做法

def dfs(index):
    if index == len(target):
        res.append(''.join(temp))
        return

    for i in range(len(target)):
        if visit[i]:
            visit[i] = False
            temp[index] = target[i]
            dfs(index + 1)
            visit[i] = True


while True:
    try:
        string = input().strip().split(' ')
        n = int(string[0])
        lst = string[1:1 + n]
        target = string[-2]
        k = int(string[-1])

        temp = [''] * len(target)
        res = []
        visit = [True] * len(target)
        dfs(0)

        check = []
        for i in lst:
            if (i in res) and (i != target):
                check.append(i)
        check = sorted(check)
        print(len(check))
        if k <= len(check):
            print(check[k - 1])
    except:
        break

全部评论

相关推荐

Edgestr:没项目地址就干脆把那一栏删了呗
点赞 评论 收藏
分享
烤点老白薯:亲娘嘞🐶💩啊你的简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务