码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer 面试43题

时间:2018-06-25 16:47:52      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:出现   IV   back   col   off   str   range   style   输入   

面试43题:

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

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

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

解题代码一:

# -*- coding:utf-8 -*-
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

解题思路二:同上,只不过先把1~n中每个数字先转为其字符串形式,然后数一数其中“1”出现的次数。

解题代码:

# -*- coding:utf-8 -*-
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

 其他思路:待优化

 

剑指offer 面试43题

标签:出现   IV   back   col   off   str   range   style   输入   

原文地址:https://www.cnblogs.com/yanmk/p/9224543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!