当前位置: 首页 > article >正文

字节青训每日一题

题目:数字翻译成字符串的可能性

小M获得了一个任务,需要将数字翻译成字符串。翻译规则是:0对应"a",1对应"b",依此类推直到25对应"z"。一个数字可能有多种翻译方法。小M需要一个程序来计算一个数字有多少种不同的翻译方法。

例如:数字12258可以翻译成 "bccfi", "bwfi", "bczi", "mcfi" 和 "mzi",共5种方式。

demo

def solution(num):
    num_str = str(num)
    n = len(num_str)
    dp = [1] * (n + 1)

    for i in range(2, n + 1):
        dp[i] = dp[i - 1]
        if 10 <= int(num_str[i - 2:i]) <= 25:
            dp[i] += dp[i - 2]

    return dp[n]

题目:超市里的货物架构调整

在一个超市里,有一个包含 nn 个格子的货物架,每个格子中放有一种商品,商品用小写字母 a 到 z 表示。当顾客进入超市时,他们会依次从第一个格子查找到第 nn 个格子,寻找自己想要购买的商品。如果在某个格子中找到该商品,顾客就会购买它并离开;如果中途遇到一个空格子,或查找完所有格子还没有找到想要的商品,顾客也会离开。

作为超市管理员,你可以在顾客到来之前重新调整商品的顺序,以便尽可能多地出售商品。当第一个顾客进入后,商品位置不能再调整。你需要计算在最优调整下,最多可以卖出多少件商品。输入变量说明:

  • n:货物架的格子数
  • m:顾客想要购买的商品种类数
  • s:货物架上商品的初始顺序
  • c:顾客想要购买的商品种类   

demo

def solution(n: int, m: int, s: str, c: str) -> int:
    # 统计顾客想要购买的每种商品在初始顺序s中的出现次数
    count_c = {}
    for char in c:
        count_c[char] = count_c.get(char, 0) + 1

    # 创建一个新的列表来表示重新排列后的货物架
    new_s = []

    # 先将顾客想要购买且在初始顺序s中存在的商品按购买次数从多到少放入新的货物架
    for char, count in sorted(count_c.items(), key=lambda x: x[1], reverse=True):
        if char in s:
            new_s.extend([char] * min(count, s.count(char)))

    # 将初始顺序s中剩余的商品放入新的货物架
    for char in s:
        if char not in new_s:
            new_s.append(char)

    # 检查重新排列后的货物架能满足多少顾客的购买需求
    sold_count = 0
    for char in c:
        if char in new_s:
            sold_count += 1
            new_s.remove(char)

    return sold_count
if __name__ == '__main__':
    print(solution(3, 4, "abc", "abcd") == 3)
    print(solution(4, 2, "abbc", "bb") == 2)
    print(solution(5, 4, "bcdea", "abcd") == 4)

 


http://www.kler.cn/a/383901.html

相关文章:

  • 搜维尔科技:【应用】Xsens在荷兰车辆管理局人体工程学评估中的应用
  • 【WebRTC】视频采集模块流程的简单分析
  • nginx配置代理地址
  • C++_STL_xx_番外01_关于STL的总结(常见容器的总结;关联式容器分类及特点;二叉树、二叉搜索树、AVL树(平衡二叉搜索树)、B树、红黑树)
  • Linux系统I/O调优实例
  • 测试自动化如何和业务流程结合?
  • 软考教材重点内容 信息安全工程师 第1章 网络信息安全概述
  • 《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列
  • 大语言模型(LLM)入门级选手初学教程 III
  • 基于SSM(Spring + Spring MVC + MyBatis)框架的文物管理系统
  • 【WebRTC】视频编码链路中各个类的简单分析——VideoStreamEncoder
  • 【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
  • C语言 -- qsort的简单使用
  • 【WPF】把一个Window放在左上角/右上角顶格显示
  • c# 深度模型入门
  • 【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
  • Docker compose 部署MongoDB
  • Python OpenCV图片读取和保存
  • CSS弹性布局:灵活布局的终极指南
  • 使用Python多线程抓取某图网数据并下载图片
  • Ubuntu 安装 redis
  • 前端基础-html-注册界面
  • 前端Web用户 token 持久化
  • java的类加载机制的学习
  • 最新kubernetes搭建(k8s)(已成功搭建)
  • CSS中的 BFC,是啥呀?