跳到主要内容

2283.判断一个数的数字计数是否等于数位的值

链接:2283.判断一个数的数字计数是否等于数位的值
难度:Easy
标签:哈希表、字符串、计数
简介:如果对于 每个 0 <= i < n 的下标 i ,都满足数位 i 在 num 中出现了 num[i]次,那么请你返回 true ,否则返回 false 。

题解 1 - cpp

  • 编辑时间:2023-01-11
  • 执行用时:4ms
  • 内存消耗:5.7MB
  • 编程语言:cpp
  • 解法介绍:遍历。
class Solution {
public:
bool digitCount(string num) {
int n = num.size(), l[10] = {0};
for (auto &c : num) l[c - '0']++;
for (int i = 0; i < n; i++) {
if (num[i] - '0' != l[i]) return false;
}
return true;
}
};

题解 2 - rust

  • 编辑时间:2023-01-11
  • 内存消耗:2.2MB
  • 编程语言:rust
  • 解法介绍:同上。
impl Solution {
pub fn digit_count(num: String) -> bool {
let mut l = [0; 10];
let n = num.len();
let num = num.chars().collect::<Vec<char>>();
for c in num.iter() {
l[*c as usize - '0' as usize] += 1;
}
for i in 0..n {
if num[i] as usize - '0' as usize != l[i] {
return false;
}
}
true
}
}