A-牛牛爱字符串
链接:https://ac.nowcoder.com/acm/contest/6885/A
来源:牛客网
题意:
多组输入,给你一行字符串,里面包含空格,让你将字符串中的数字输出,并且数字不包含前导零
solution:
从前往后遍历,当s[i]>='0'&&s[i]<='9'的时候,判断一下标志为0说明还未输出当前连续字符的任意一个数字,若当前位置是零的话并且后一个字符也是0那么continue,如果后一个不是0那么直接输出,将标记改为1,flag是用于标记是否前面输出过连续的数字,如果已经输出了,不管后面是否为0都不会存在前导零了
#include<stdio.h> #include<string.h> #include<queue> #include<iostream> #include<cmath> #include<algorithm> using namespace std; typedef long long ll; string s; int main() { while(getline(cin,s)) { int flag=0; int cnt=0; for(int i=0;i<s.length();i++) { if(s[i]>='0'&&s[i]<='9') { if(flag==0) { if(s[i]=='0'&&(s[i+1]>='0'&&s[i+1]<='9')) continue; if(cnt!=0) cout<<' '; cout<<s[i]; cnt++; } else cout<<s[i]; flag=1; } else flag=0; } cout<<endl; } return 0; }