第一反应想到得就是遍历:把数字通过str转换成字符串储存在列表中,再遍历判断


# -*- coding:utf-8 -*-
class Solution:
    def NumberOf1Between1AndN_Solution(self, n):
        # write code here
        s = []
        number = 0
        for i in range(1, n+1):
            s.append(str(i))
        for j in s:
            for k in j:
                if k == "1":
                    number += 1
        return number

第二反应就是用字符串s 保存 下来所有 str(n) ,然后调用count()函数,这样内存和时间都最优

# -*- coding:utf-8 -*-
class Solution:
    def NumberOf1Between1AndN_Solution(self, n):
        # write code here
        s = ""
        num1 = 0
        for i in range(1, n+1):
            s = s + str(i)
        return s.count("1")