LintCode笔记(7)——统计数字

来源:互联网 发布:成都市行知小学怎么样 编辑:程序博客网 时间:2024/05/19 05:37

计算数字k在0到n中的出现的次数,k可能是0~9的一个值

样例

例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)

费了很大的力气找比较简单的方法,最后还是没有实现,只能用暴力破解。。思路就是找出0~N中每个数字的每一位,与k进行比较,若相等则加1,代码如下:

class Solution {public:    /*     * param k : As description.     * param n : As description.     * return: How many k's between 0 and n.     */    int digitCounts(int k, int n) {        // write your code here        int count = 0;        for(int i = 0;i<=n;i++)        {            int number = i;            while(number/10)            {                if(number % 10 == k)                {                    count++;                }                number = number/10;            }            if(number == k)                count++;        }        return count;    }};

最终在网上找到的其他人的答案也是这个方法,如果有简单的方法希望告知。


0 0
原创粉丝点击