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

C++中如何对比序列实现校验数字是否包含0-9所有数位的功能

C++全数位校验实现与序列对比方法

一、等价功能实现

你提供的Python代码核心是判断输入数字是否包含0-9全部10个数位,以下是两种C++实现方案:

1. 对齐原Python逻辑的实现

完全复现你原代码的逐位取数、反转列表、遍历校验逻辑:

#include <vector>
#include <algorithm>

bool val_checker(long long n) {
    std::vector<int> values = {0,1,2,3,4,5,6,7,8,9};
    std::vector<int> lst;

    // 逐位提取数字,对应Python的(n // 10**i) % 10逻辑
    long long temp = n;
    while (temp > 0) {
        lst.push_back(temp % 10);
        temp /= 10;
    }
    // 反转列表,对应Python的lst[::-1]
    std::reverse(lst.begin(), lst.end());

    // 对应Python的all(i in lst for i in values)
    for (int num : values) {
        if (std::find(lst.begin(), lst.end(), num) == lst.end()) {
            return false;
        }
    }
    return true;
}

2. 精简高效实现

利用布尔数组标记数位出现状态,无需额外存储所有数位,性能更高:

#include <string>

bool val_checker(long long n) {
    bool exist[10] = {false};
    // 直接转字符串遍历数位
    for (char c : std::to_string(n)) {
        exist[c - '0'] = true;
    }
    // 校验所有数位是否都出现
    for (bool flag : exist) {
        if (!flag) return false;
    }
    return true;
}

二、C++序列对比方法

C++中和Python列表等价的常用序列结构是std::vector、std::array,对比方法分三类:

  • 顺序敏感的全等对比:要求两个序列长度相同、对应位置元素完全一致
    可以直接用STL容器重载的==运算符,写法最简洁:
    std::vector<int> list1 = {1,2,3,4};
    std::vector<int> list2 = {1,2,3,4};
    bool is_equal = (list1 == list2); // 返回true
    
    也可以用<algorithm>头文件的std::equal函数实现相同效果。
  • 不要求顺序的内容对比:只需要两个序列包含的元素完全相同,不管排列顺序
    先对两个序列排序后再用==对比即可:
    #include <algorithm>
    std::vector<int> a = {3,1,2};
    std::vector<int> b = {2,3,1};
    std::sort(a.begin(), a.end());
    std::sort(b.begin(), b.end());
    bool same_content = (a == b); // 返回true
    
  • 包含关系对比:判断一个序列的所有元素是否都在另一个序列中存在(和你原代码的all(i in lst)逻辑一致)
    用std::find遍历查找即可,示例:
    // 判断val的所有元素是否都在lst中存在
    bool all_exist = true;
    for (int num : val) {
        if (std::find(lst.begin(), lst.end(), num) == lst.end()) {
            all_exist = false;
            break;
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:24:08