zoukankan      html  css  js  c++  java
  • UVA Live 7770 模拟

    UVA Live 7770

    题目链接

    真的是恶心到我了,怎么会有这么恶心的模拟题目呢,写了好几遍,一晚上就荒废了

    #include <stdio.h>
    #include <iostream>
    #include <string.h>
    #include <stdlib.h>
    #include <vector>
    #include <algorithm>
    #include <queue>
    #include <map>
    #include <string>
    #include <math.h>
    #include <ctype.h>
    using namespace std;
    typedef pair<int,int> P;
    typedef long long LL;
    const int INF = 0x3f3f3f3f;
    const double PI = acos(-1.0);
    const double eps = 1e-9;
    vector<string> cans;
    string str;
    string s;
    
    bool judge(string &s)
    {
        int n = s.size();
        if(n <= 1) return false;
        if(!isupper(s[0])) return false;
        for(int i = 1; i < n; i++)
        {
            if(!islower(s[i])) return false;
        }
        return true;
    }
    
    int main()
    {
        while(getline(cin, str))
        {
            str += '.';
            int n = str.size();
            s = "";
            for(int i = 0; i < n; i++)
            {
                if(isalpha(str[i]))
                {
                   s += str[i];
                }
                else if(str[i] == ' ')
                {
                    if(judge(s))
                    {
                        cans.push_back(s);
                        s = "";
                    }
                    else
                    {
                        if(cans.size() >= 2)
                        {
                            string tmp = "";
                            for(int j = 0; j < cans.size(); j++)
                                tmp += cans[j][0];
                            tmp += " (";
                            for(int j = 0; j < cans.size(); j++)
                            {
                                if(j) tmp += " ";
                                tmp += cans[j];
                            }
                            tmp += ")";
                            cout<<tmp;
                        }
                        else
                        {
                            string tmp = "";
                            for(int j = 0; j < cans.size(); j++)
                            {
                                if(j) tmp += " ";
                                tmp += cans[j];
                            }
                            cout<<tmp;
                        }
                        string tmp = "";
                        if(cans.size() >= 1) tmp += " ";
                        tmp += s;
                        tmp += " ";
                        s ="";
                        cout<<tmp;
                        cans.clear();
                    }
                }
                else if(str[i] != ' ')
                {
                    if(judge(s))
                    {
                        cans.push_back(s);
                    }
                    if(cans.size() >= 2)
                    {
                        string tmp = "";
                        for(int j = 0; j < cans.size(); j++)
                            tmp += cans[j][0];
                        tmp += " (";
                        for(int j = 0; j < cans.size(); j++)
                        {
                            if(j) tmp += " ";
                            tmp += cans[j];
                        }
                        tmp += ")";
                        cout<<tmp;
                    }
                    else
                    {
                        string tmp = "";
                        for(int j = 0; j < cans.size(); j++)
                        {
                            if(j) tmp += " ";
                            tmp += cans[j];
                        }
                        cout<<tmp;
                    }
                    string tmp = "";
                    if(judge(s))
                        tmp += str[i];
                    else
                    {
                        if(cans.size() >= 1)
                            tmp += " ";
                        tmp += s;
                        tmp += str[i];
                    }
                    if(i == n-1) tmp.resize(tmp.size()-1);
                    cout<<tmp;
                    s="";
                    cans.clear();
                }
            }
            cout<<endl;
        }
        return 0;
    }
    

    所以说没有啥大事是重写一遍解决不了的,如果有,那就再写一遍

    如果有错误,请指出,谢谢
  • 相关阅读:
    博客园添加鼠标动态事件
    天津市蓟州区上仓中学恩师名单
    机器学习——支持向量机(Support Vector Machines)
    机器学习——贝叶斯和朴素贝叶斯
    使用jieba和gensim进行短文本分类(一):构建词向量
    Nginx(语法):05---Nginx配置文件语法
    docker单机部署 mysql8.0.20
    docker swarm 部署minio集群
    centos7 部署k8s集群
    docker compose 安装
  • 原文地址:https://www.cnblogs.com/Alruddy/p/7368478.html
Copyright © 2011-2022 走看看