#腾讯笔试#8.23  腾讯笔试第二题为什么回溯一个都过不了

import sys
class Solution:
    def subset(self,s,n):
        self.res = []
        partial = ""
        self.used = [False] * len(s)
        self.backtracking(partial,s)
        self.res.sort()
        return self.res[n-1]
    def backtracking(self,partial,s):
        if partial:
            self.res.append(partial)
        if len(partial) == len(s):
            return
        else:
            for i in range(len(s)):
                if not self.used[i]:
                    if not partial or ord(s[i]) >= ord(partial[-1]):
                        if i > 0 and s[i] == s[i-1] and not self.used[i - 1]:
                            continue
                        self.used[i] = True
                        partial+=s[i]
                        self.backtracking(partial,s)
                        partial = partial[:-1]
                        self.used[i] = False
a = input().split()
s = a[0]
n = int(input().split()[0])
print(str(Solution().subset(s,n)))
全部评论
我本地自测的结果都是对的然后一个都没过,请问一下是为什么呢
点赞 回复 分享
发布于 2020-08-23 22:28

相关推荐

07-11 11:15
中南大学 Java
好可爱的hr姐姐哈哈哈哈
黑皮白袜臭脚体育生:兄弟们貂蝉在一起,吕布开了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 15:08
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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