夏天吃辣椒

导航

 

1、字符串和十进制互转(0ms,100%;5.8MB,75%)

 1   int maximum69Number (int num) {
 2         //to_string()将数值转化为字符串,并返回字符串
 3        string str=to_string(num);
 4        //遍历字符串并引用单个字符
 5        for(char& ch:str){
 6            if(ch=='6'){
 7            ch='9';
 8            break;
 9            }
10        }
11        //stoi()和atoi()都是将字符串(需含数字)转为int
12        //stoi()参数是const string*, 将string转为int
13        //atoi()参数是const char*, 是将char*转为int
14        return stoi(str);
15     }
16 };

2、利用9和6的性质差(0ms,100%;5.7MB,98%)

 1 int maximum69Number (int num) {
 2         //记录原始值
 3         int a=num;
 4         //记录尾值
 5         int b=0;
 6         //记录位数,减少一位就乘10
 7         int c=1;
 8         //记录最高位6的位数
 9         int d=1;
10         while(num){
11             b=num%10;
12             num/=10;
13             c*=10;
14             if(b==6){
15                 d=c;
16             }
17         }
18         //利用9和6相差3这个性质
19         return a+=(d/10)*3;
20     }

3、只有4位时(0ms,100%;5.8MB,86%)

 1  static int get(int num){
 2         if(num/1000==6) return 3000;
 3         else if(num/100%10==6) return 300;
 4         else if(num/10%10==6) return 30;
 5         else if(num%10==6) return 3;
 6         else return 0;
 7     }
 8     int maximum69Number (int num) {
 9         int a=get(num);
10         return num+=a;
11     }

 

posted on 2021-11-04 19:46  夏天吃辣椒  阅读(61)  评论(0)    收藏  举报