第一反应想到得就是遍历:把数字通过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
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")
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")