夏天吃辣椒

导航

 

1、贪心+int判断(24ms,54%;14.6MB,44%)

 1 string largestOddNumber(string num) {
 2     int len=num.size();
 3     for(int i=len-1;i>=0;i--){
 4         //-'0'相当于减0的ASCII码48,将字符串型转成整型
 5         //+'0'相当于加0的ASCII码48,将整型转成字符串型
 6         //没有-’0’也一样,因为奇数、偶数对应ASCII码分别是奇数、偶数
 7         if((num[i]-'0')%2==1)
 8         //从num的0位截取i+1位字符
 9         return num.substr(0,i+1);
10     }
11     return "";
12     }

2、&判断(20ms,82%;14.6MB,44%)

1  string largestOddNumber(string num) {
2     for(int i=num.size()-1;i>=0;i--){
3         //因为奇数的二进制末尾必定有1,进行逻辑与可得真
4         //有没有-'0'不重要,因为奇数ASCII码还是奇数
5         if(num[i]-'0'&1)
6         return num.substr(0,i+1);
7     }
8     return "";
9     }

 

3、ASCII码判断(12ms,99%;13.5MB,97%)

1 string largestOddNumber(string num) {
2         //back()截取字符串最后一个字符,front()截取第一个
3         //奇数、偶数对应的ASCII码分别是奇数、偶数
4         //pop.back()删除字符串末尾的字符
5         while(num.size()&&num.back()%2==0) num.pop_back();
6         return num;
7     }

 

posted on 2021-10-16 10:42  夏天吃辣椒  阅读(68)  评论(0)    收藏  举报