题目来源
题目描述
题目解析
所有的数组都是由0-9这几个数字组成的
- 0,1,8 旋转之后是自己
- 2、5、6、9是好数
- 3、4、7旋转之后不是数
关键点:判断一个数是不是好数
- 如果这个数中出现了3,4,7,那么就一定不是
- 如果数字全部是由0、1、8这几个数组成,那么他们旋转之后还是自己,因此不是
- 如果数字由0、1、8、2、5、6、9组成,那么是
- 如果数字由2、5、6、9组成,那么是
也就是只要由2、5、6、9出现而且3,4,7不出现就可以
常规解法
class Solution {
public int rotatedDigits(int N) {
int res = 0;
for (int i = 1; i < N+1; i++){
if (isHao(String.valueOf(i).toCharArray())){
res++;
}
}
return res;
}
private static boolean isHao(char[] s){
boolean flag = false;
for (char c : s){
boolean tf = false;
switch (c){
case '3':
case '4':
case '7':
flag = false;
tf = true;
break;
case '2':
case '5':
case '6':
case '9':
flag = true;
break;
}
if (tf){
break;
}
}
return flag;
}
}
这里还可以用正则表达式