You are given a digit string num
. You need to determine if the count of each digit in the string matches its value. Specifically, for each digit at index i
in the string, the count of digit i
in the entire string should match the digit’s value at that index. Return ‘True’ if the string satisfies this condition, otherwise return ‘False’.
num
?
def digit_count(num: str) -> bool:
# Create a dictionary to hold the count of each digit
from collections import Counter
digit_counts = Counter(num)
# Traverse through each digit
for i in range(len(num)):
# Check if the count of the digit i (converted to string) matches num[i] (converted to int)
if digit_counts[str(i)] != int(num[i]):
return False
return True
# Example tests
print(digit_count("1210")) # True
print(digit_count("030")) # False
Counter
from the collections
module to count the instances of each character (digit) in the string num
.i
of the string num
.i
, check if the count of the digit str(i)
in the Counter equals the integer value of num[i]
.True
. If any check fails, return False
.num
, to count the frequency of each digit.num
.The provided solution is efficient and well within the acceptable limits for the problem constraints.
Got blindsided by a question you didn’t expect?
Spend too much time studying?
Or simply don’t have the time to go over all 3000 questions?