A
看是字符串肯定可能是大数,只有用py会省很多事情:判断是不是数字,是就res=res*0+num,下一个字母或者结束打印res
讨论这么几种情况:
res是当前数字的string形式
1.如果是数字——如果前导有数字——都加res
——如果没有确定前导——非零加入res,havenum=1
2.如果是字母——有没有res——有就打印res
——有没有havenum——有就打印0
给个赞和关注吧,谢谢大家对本题解的支持
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string s;
ll f1;
void work(){
ll f1=0, fnum=0;
string ans;
for(auto i:s){
if(isdigit(i)){
fnum=1;
if(f1) ans+=i;
else if(i!='0') ans+=i, f1=1;
}else{
if(ans.size()) cout<<ans<<" ";
else if(fnum) cout<<"0 ";
f1=0, fnum=0, ans="";
}
}
if(ans.size()) cout<<ans<<" ";
else if(fnum) cout<<"0 ";
cout<<endl;
return ;
}
int main(){
while(getline(cin,s,'\n'))
work();
return 0;
}

京公网安备 11010502036488号