剑指Offer(Python多种思路实现):1~n整数中1出现的次数

剑指Offer(Python多种思路实现):1~n整数中1出现的次数

面试43题:

题目:1~n整数中1出现的次数

题:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1,10,11,12一共出现了5次。

解题思路一:直接累加1~n中每个整数中1出现的次数。

class Solution:
    def NumberOf1Between1AndN_Solution(self, n):
        # write code here
        totalCount=0
        for i in range(1,n+1):
            totalCount+=self.NumberOf1Core(i)
        return totalCount
    
    def NumberOf1Core(self,number):
        count=0
        while(number):
            if number%10==1:
                count+=1
            number=number//10
        return count

解题思路二:

class Solution:
    def NumberOf1Between1AndN_Solution(self, n):
        # write code here
        count=0
        for i in range(1,n+1):
            for j in str(i):
                if j=="1":
                    count+=1
        return count
发布了53 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44151089/article/details/104489929