力扣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