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;
}
}
- 有一个地方值得注意下,while判断中只能判断大于1,但是要求是从0开始的,所以需要特别判断下0的情况。
- 题目链接:https://www.lintcode.com/problem/digit-counts/description