劍指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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章