#腾讯笔试#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)))
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)))
全部评论
我本地自测的结果都是对的然后一个都没过,请问一下是为什么呢
相关推荐
点赞 评论 收藏
分享
2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板 点赞 评论 收藏
分享
2025-12-02 13:21
北京邮电大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
