You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断数字B的所有数位均存在于数字A中?现有实现存在错误

问题:判断B的所有数位是否都存在于A中时逻辑错误

我需要实现一个判断逻辑:给定两个数字A和B,如果B的每一位数字都能在A的数位中找到,返回true,否则返回false。

但我写的代码完全没实现这个逻辑,当B包含A里没有的数字时,还是会返回true,比如测试用例里的A=1111、B=112的情况。

我的代码:

if (A >= B)
    return true
else
    return false

测试用例

  • 测试用例1(符合预期):
    A = 98765,B = 8759
    代码返回:True,实际符合预期(B的所有数位都在A中)
  • 测试用例2(符合预期):
    A = 154,B = 154
    代码返回:True,实际符合预期
  • 测试用例3(符合预期):
    A = 875,B = 8756
    代码返回:False,实际符合预期(B包含A没有的数字6)
  • 测试用例4(不符合预期):
    A = 1111,B = 112
    代码返回:True,预期返回:False(A中没有数字2)

解决方案

你当前的代码逻辑是比较A和B的数值大小,这和需求完全不相关,自然会出错。正确的思路应该是提取A的所有数位并去重,然后逐一检查B的每一位是否都在这个集合里。

以Python为例,实现代码如下:

def check_digits(A, B):
    # 将A转为字符串,提取所有数位并转成集合(自动去重)
    a_digit_set = set(str(A))
    # 遍历B的每一位数字
    for digit in str(B):
        if digit not in a_digit_set:
            return False
    return True

测试验证:

  • check_digits(1111, 112) → 返回False,符合预期
  • check_digits(98765, 8759) → 返回True,符合预期
  • check_digits(875, 8756) → 返回False,符合预期

核心逻辑是利用集合的快速查找特性,只关注数位本身,完全不依赖A和B的数值大小关系。

内容的提问来源于stack exchange,提问作者deftins12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:55:20