0
已解决
沈峻宇
资深天翼
资深天翼
题目描述 Description
给出一个字符串,仅由字母(大写或小写)和数字组成。试找出并输出其中最大的一个数字。
输入描述 Input Description
一个字符串
输出描述 Output Description
这个字符串中最大的数字
样例输入 Sample Input
abc123d123456789012345678901f
样例输出 Sample Output
123456789012345678901
数据范围及提示 Data Size & Hint
字符串中的数字范围可能会超过long long
求解!1200经验我要拿下!
沈峻宇在2021-01-05 12:28:14追加了内容
@龙舟 @李瑞曦
0
已采纳
张帆
中级天翼
中级天翼
循环遍历此字符串,判断当前字符是不是数字,若是,
转换为int类型:
int pos=s[i];
然后ans取最大值:
ans=max(ans,pos);
最后输出ans。
张帆在2021-01-05 12:52:09追加了内容
说错了:
定义状态变量(bool)cmp,
循环遍历字符串s,
循环里面:
if(s[i]>='0'&&s[i]<='9'){
a[cnt]=a[cnt]+s[i];
cmp=false;
}
else if(cmp==false){
cnt++;
cmp=true;
}
注:a为string类型
此时sort,
cmp函数(不能定义为cmp,会重名)这样写:
bool t(string a,string b){
if(a.length()!=b.length()) return a.length()<b.length();
return a<b;
}
排序找最大
最后:
if(a[cnt].empty()){
cout<<a[cnt-1];
}
else{
cout<<a[cnt];
}
(输出)
0
0