LintCode-Digit Counts

Digit Counts

Description

Count the number of k’s between 0 and n. k can be 0 - 9.

Have you met this question in a real interview? Yes

Example

if n = 12, k = 1 in

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

we have FIVE 1’s (1, 10, 11, 12)

  • 题目模板

    public class Solution {
      /**
       * @param k: An integer
       * @param n: An integer
       * @return: An integer denote the count of digit k in 1..n
       */
      public int digitCounts(int k, int n) {
          // write your code here
      }
    }
  • 题目大意

    给你一个数n,让你算出从1到n中有多少个数包含数字k

  • 大概思路

    刚开始想了想找规律,后来发现题目给的n只有int,觉得暴力就可以了

public class Solution {
    /**
     * @param k: An integer
     * @param n: An integer
     * @return: An integer denote the count of digit k in 1..n
     */
    public int digitCounts(int k, int n) {
        // write your code here
        int sum = 0, a;
        for(int i=0; i<=n; i++){
            int t = i;
            if(t == k){
                sum++;
                continue;
            }
            while(t >= 1){
                a = t % 10;
                if(a == k)
                    sum++;
                t /= 10;
            }
        }
        return sum;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_24889575/article/details/81453576