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; }