牛客练习赛67a,分类讨论,牛牛爱字符串

牛牛爱字符串

https://ac.nowcoder.com/acm/contest/6885/A

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


牛客练习赛67 文章被收录于专栏

牛客练习赛67的题解

全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务