Educational Codeforces Round 2 A. Extract Numbers(模拟)

54 篇文章 0 订阅

题目链接
题意:给你一个字符串,其中逗号,封号分开的是单词,现在要把由纯数字(多位数字的话不能以0,或者-开头)的单词选择出来组合为A串,剩下的是B串,如果某个串是空输出’-“
解法:模拟,先把单词分割出来,然后,写一个判断是不是数字的函数



#define CF

#ifndef CF
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#else
#include<bits/stdc++.h>
#endif // CF
using namespace std;
#define LL long long
#define pb push_back
#define X first
#define Y second
#define cl(a,b) memset(a,b,sizeof(a))
typedef pair<long long ,long long > P;
const int maxn=2*100005;
const LL inf=1LL<<50;
const LL mod=1e9+7;
string s;
vector<string> num,other,v;
bool ok(string s){
    if(s=="")return false;
    if(s.length()==1&&s[0]>='0'&&s[0]<='9')return true;
    if(s[0]=='0')return false;
    for(int i=0;i<s.length();i++){
        if(!(s[i]>='0'&&s[i]<='9'))return false;
    }
    return true;
}
int main(){
    cin>>s;
    int n=s.length();
    for(int i=0;i<n;i++){
        if(s[i]==',')s[i]=';';
    }
    int i=0;
    while(i<n){
        string tmp="";
        while(i<n&&s[i]!=';')tmp+=s[i],i++;
        v.pb(tmp);
        if(i<n&&s[i]==';')i++;
        //tmp="";
        //while(i<n&&s[i]==';')i++;
    }
    if(s[n-1]==';')v.pb("");
    int N=v.size();
    for(int i=0;i<N;i++){
        if(ok(v[i]))num.pb(v[i]);
        else other.pb(v[i]);
    }
    //cout<<s[n-1]<<endl;

    if(num.empty()){
        puts("-");
    }
    else {
        for(int i=0;i<num.size();i++){
            if(i==0)cout<<"\""<<num[i];
            else cout<<","<<num[i];
        }
        cout<<"\""<<endl;
    }


    if(other.empty()){
        puts("-");
    }
    else {
        for(int i=0;i<other.size();i++){
            if(i==0)cout<<"\""<<other[i];
            else cout<<","<<other[i];
        }

        cout<<"\""<<endl;
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值