题解 | #选牛比赛#
选牛比赛
https://www.nowcoder.com/practice/75df501809d14532a00e747666587873
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param digits string字符串一维数组
# @param n int整型
# @return int整型
#
class Solution:
def countEligibleCows(self , digits: List[str], n: int) -> int:
# write code here
n_str = str(n)
n_len = len(n_str)
digits_count = len(digits)
# 计算长度小于 n_str 长度的所有合法编号数量
total = 0
for length in range(1, n_len):
total += digits_count ** length
# 计算长度等于 n_str 长度的合法编号数量
i = 0
while i < n_len:
j = 0
while j < digits_count:
if int(digits[j]) < int(n_str[i]):
if i == n_len - 1:
total += 1
else:
total += (digits_count ** (n_len - i - 1))
elif int(digits[j]) == int(n_str[i]):
if i == n_len - 1:
total += 1
else:
i += 1
j = -1
j += 1
i += 1
return total


