问题描述
一个整数如果由相同数字构成,可以称为完美整数;比如说1、11、333就是完美整数,12、19、101就是不完美的整数。
现在想知道,在区间 [x, y]
中有多少个整数是完美整数。
输入格式
每个样例有一行,是整数 x
和 y
;(1 ≤ x ≤ y ≤ 10^9)
输出格式
每一个样例一行,是整数 m
,表示区间 [x, y]
中有 m 个整数是完美整数。
输入样例1
1 10
输出样例1
9
输入样例2
2 22
输出样例2
10
数据范围
1 ≤ t ≤ 1000
1 ≤ x ≤ y ≤ 10^9
解析:
对于区间的每一个数字,转为字符数组,在遍历字符数组的时候查看前后是否相等即可,若不相等直接返回false即可
代码如下
public class Main {
public static boolean check(int num){
String valueOf = String.valueOf(num);
char[] charArray = valueOf.toCharArray();
for (int i = 0; i < charArray.length-1; i++) {
if(charArray[i+1]!=charArray[i]){
return false;
}
}
return true;
}
public static int solution(int x, int y) {
int count=0;
for(int i=x;i<y+1;i++){
if(check(i)){
count++;
}
}
return count;
}
public static void main(String[] args) {
// Add your test cases here
System.out.println(solution(1, 10) == 9);
System.out.println(solution(2, 22) == 10);
}
}