顺丰笔试

第一题,原始字符无顺序查找顺序字符'abcdefgh'的方案数,考完才看清楚题目,要去重。。。gg了

s = "aabhgfdec"
target = 'abcdefgh'
words = []
# 处理字符串
for j in range(len(s)):
    if s[j] in target:
        words.append(s[j])

        if j!=0:
            # 找到前缀,比如aabhgfdec中,遍历到b时,其前缀为a,那么就可以合并出新的字串ab
            prex = words[-2]
            if ord(prex[-1])+1 ==ord(s[j]):
                for i in range(len(prex)):
                    words.append(prex[i:]+s[j])

# 去重
words = list(set(words))
# 排序
words.sort()
# 采用深度优先搜索
def count_ways_to_spelling(target, words):
    def recursive_count(target, index):
        if index == len(target):
            return 1

        ways = 0
        for word in words:
            if target[index:index + len(word)] == word:
                ways += recursive_count(target, index + len(word))

        return ways

    return recursive_count(target, 0)

result = count_ways_to_spelling(target, words)
print("拼成 'abcdefgh' 的方案数:", result)

第二题,买糖果,有打折,没有思路。。。。有大佬会的指定下

全部评论
额你的第一题是我的第二题,我的第一题是要对1e9+7取模的题
点赞 回复 分享
发布于 2023-09-06 18:37 北京
大佬能不能给几个用例让我参考下,实在没搞明白自己的算法为啥只能过18%
点赞 回复 分享
发布于 2023-09-05 23:16 江苏

相关推荐

07-29 14:09
门头沟学院 Java
我爱o泡我爱o泡o泡果奶ooo
26加瓦鼠鼠:三个offer了,停手吧,回头是岸
点赞 评论 收藏
分享
天天困啊:个人建议第一点就是熟悉Redis这里不要这么写,写上Redis比较核心的技术,什么缓存一致性,雪崩穿透击穿那些,掌握cos其实不用写在专业技能里这个你做了鱼皮的这个项目面试官默认应该认为你应该懂了,鱼皮这个项目核心挺多建议多啃啃,在做一个鱼皮的微服务项目俩项目在一起比较好哦
你的简历改到第几版了
点赞 评论 收藏
分享
评论
1
11
分享

创作者周榜

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