计算数字k在0到n中出现的次数,k可能是0~9之间的一个值
1.暴力法
从0到n对每个数进行逐个检测。
class Solution1:
"""
@param k: An integer
@param n: An integer
@return: An integer denote the count of digit k in 1..n
"""
def digitCounts(self, k, n):
# write your code here
assert(n>=0 and 0<=k<=9)
count = 0
for i in range(n+1):
count+=self.singleNumCount(k,i)
return count
@staticmethod
def singleNumCount(k,num):
count=0
while True:
if num % 10 == k:
count+=1
num//=10
if num == 0:
break
return count
2.一行法
class Solution2:
"""
@param k: An integer
@param n: An integer
@return: An integer