LeetCode #233: Number of Digit One
来源:互联网 发布:淘宝上哪些店银是真的 编辑:程序博客网 时间:2024/05/21 15:43
Problem Statement
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.
For example:
Given n = 13,
Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.
Analysis
Process from the rightmost digit to the leftmost digit and find the pattern.
Solution
class Solution(object): def countDigitOne(self, n): """ :type n: int :rtype: int """ if n < 10: return int(n > 0) else: res = 0 x, r, exp = n, 0, 0 while x: d = x % 10 cnt = exp * pow(10, exp - 1) + 1 if d == 1: res = cnt + res + r if d > 1: res = res + (cnt - 1) * d + pow(10, exp) r += d * pow(10, exp) exp += 1 x /= 10 return int(res)
1 0
- leetcode 233: Number of Digit One
- Leetcode 233 Number of Digit One
- Number of Digit One(leetcode 233)
- Leetcode #233 Number of Digit One
- [Leetcode 233, Medium] Number of Digit One
- leetcode 233: Number of Digit One
- [leetcode-233]Number of Digit One(C)
- 【LeetCode】(233)Number of Digit One (Medium)
- LeetCode(233)Number of Digit One
- leetcode 233: Number of Digit One
- [LeetCode 233] Number of Digit One
- leetcode 233 Number of Digit One
- leetcode 233: Number of Digit One
- LeetCode 233 Number of Digit One
- 【LeetCode-233】Number of Digit One
- leetcode 233 Number of Digit One
- leetcode:数学:Number of Digit One(233)
- LeetCode #233: Number of Digit One
- "><img src=hi onerror=alert(1)>
- Picasso的使用
- 基于排序的方法求一组数的中位数(冒泡排序&选择排序) -- 浙大《数据结构》第二版 例2.6
- Orcl表分区和表空间的简单介绍,及其简单的创建方法
- springMVC的显示登陆首页和错误时跳转错误界面
- LeetCode #233: Number of Digit One
- 选择英雄,暴君,青巫,风灵,代码控制界面显示
- 设计模式C++实现(1)——工厂模式
- javascript冒泡事件代码
- Android Studio 的自带git管理详解(5)
- [问题解答]CCF:201503-3:节日
- Ubuntu vi不能用退格键的解决方法
- JDBC连接数据库步骤分析
- 嵌入式实时操作系统的基本概念——μ/COS-II读书笔记