其他分享
首页 > 其他分享> > 力扣1323、6和9组成的最大数字

力扣1323、6和9组成的最大数字

作者:互联网

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     }

 

标签:1323,return,数字,10,int,else,力扣,num,string
来源: https://www.cnblogs.com/Wow-A/p/15510059.html