题目:
计算数字k在0到n中的出现的次数,k可能是0~9的一个值
样例:
例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)
这里要注意的一点是,11这个数组算1出现了两次,这也是导致我出现了一次错误的点。
因为是整数所以不方便直接判断互相直接是否包含,于是直接把整数转化成字符串,用 in 判断是否包含,之后用python中字符串的count()函数来计算出现的次数,最后相加返回即可。
实际上我查到的是list的count()函数,没想到string也有。
下面上代码
class Solution:
"""
@param: : An integer
@param: : An integer
@return: An integer denote the count of digit k in 1..n
"""
def digitCounts(self, k, n):
# write your code here
count = 0
for i in range(n+1):
if(str(k) in str(i)):
count += str(i).count(str(k))
return count
第一次没有注意,写的是
count += 1
这个就导致11没有加两次,很尴尬。
再改正之后没出现其他问题。
大概就这样了,感觉还应该多加练习。现在掌握的东西少,而且不熟练。