我是靠谱客的博主 会撒娇萝莉,最近开发中收集的这篇文章主要介绍剑指 Offer 43. 1~n整数中1出现的次数-Python题解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。

例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。

示例 1:

输入:n = 12
输出:5
示例 2:

输入:n = 13
输出:6

限制:

1 <= n < 2^31

class Solution:
def countDigitOne(self, n: int) -> int:
digit,res = 1,0
high,cur,low = n // 10,n % 10, 0
while high != 0 or cur != 0:
if cur == 0:
res += high * digit
elif cur == 1:
res += high * digit + low + 1
else:
res += (high + 1) * digit
low += cur * digit
cur = high % 10
high //= 10
digit *= 10
return res

最后

以上就是会撒娇萝莉为你收集整理的剑指 Offer 43. 1~n整数中1出现的次数-Python题解的全部内容,希望文章能够帮你解决剑指 Offer 43. 1~n整数中1出现的次数-Python题解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部