zoukankan      html  css  js  c++  java
  • URAL 1993 This cheeseburger you don't need

    http://acm.timus.ru/problem.aspx?space=1&num=1993

    题意:题目中那么多英语直接就没看,看了样例知道是什么意思了,就是给你一个字符串,算是一个句子,若是复杂句,是有“ ,”作为分割为两个句子的,若是不加任何括号的就原样输出,若是有括号的先输出花括号里的,再输出中括号里的,再输出小括号里的,每一句话只有第一个字母大写。

    思路 :模拟题吧,一向挺烦的,万一哪个细节没注意到就容易出错。

    #include<cstdio>
    #include<cstring>
    #define maxn 1000
    using namespace std;
    char s[maxn],s1[maxn];
    int a[maxn],b[maxn];
    int main()
    {
        while(gets(s))
        {
            int m,t;
            int k=strlen(s);
            bool flag=false;
            for(int i=0; i<k; i++)
            {
                if(s[i]=='{'||s[i]=='('||s[i]=='[')
                {
                    s[i+1]+=32;
                    break;
                }
            }
            for(int i=0; i<k; i++)
            {
                if(s[i]==',')
                {
                    flag=true;
                    m=i;
                    break;
                }
            }
            if(!flag)
            {
                for(int i=0; i<k; i++)
                {
                    if(s[i]=='{') a[1]=i;
                    else if(s[i]=='(') a[2]=i;
                    else if(s[i]=='[') a[3]=i;
                    else if(s[i]=='}') b[1]=i;
                    else if(s[i]==')') b[2]=i;
                    else if(s[i]==']') b[3]=i;
                }
                t=1;
                while(t<=3)
                {
                    for(int j=a[t]+1; j<b[t]; j++)
                    {
                        if(t==1&&j==a[t]+1)
                        printf("%c",s[j]-32);
                        else printf("%c",s[j]);
                    }
                    if(t!=3) printf(" ");
                    t++;
                }
                printf("
    ");
            }
            else if(flag)
            {
                for(int i=0; i<m; i++)
                {
                    if(s[i]=='{') a[1]=i;
                    else if(s[i]=='(') a[2]=i;
                    else if(s[i]=='[') a[3]=i;
                    else if(s[i]=='}') b[1]=i;
                    else if(s[i]==')') b[2]=i;
                    else if(s[i]==']') b[3]=i;
                }
                t=1;
                while(t<=3)
                {
                    for(int j=a[t]+1; j<b[t]; j++)
                    {
                        if(t==1&&(j==a[t]+1))
                        printf("%c",s[j]-32);
                        else printf("%c",s[j]);
                    }
                    if(t!=3) printf(" ");
                    t++;
                }
                int cc;
                for(int j=m; j<k; j++)
                {
                    if(s[j]=='{'||s[j]=='('||s[j]=='[')
                    {
                        cc=j;
                        break;
                    }
                    else printf("%c",s[j]);
                }
                for(int i=cc; i<k; i++)
                {
                    if(s[i]=='{') a[1]=i;
                    else if(s[i]=='(') a[2]=i;
                    else if(s[i]=='[') a[3]=i;
                    else if(s[i]=='}') b[1]=i;
                    else if(s[i]==')') b[2]=i;
                    else if(s[i]==']') b[3]=i;
                }
                t=1;
                while(t<=3)
                {
                    for(int j=a[t]+1; j<b[t]; j++)
                    {
                        printf("%c",s[j]);
                    }
                    if(t!=3) printf(" ");
                    t++;
                }
                printf("
    ");
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    k8s中负载均衡器【ingress-nginx】部署
    利用procedure批量插入数据
    一次socket.error: [Errno 99] Cannot..报错排查
    k8s使用Job执行任务失败了怎么办
    采坑指南——k8s域名解析coredns问题排查过程
    如何批量删除k8s资源对象
    史上最全docker基础知识汇总
    docker镜像制作必备技能
    kubernetes垃圾回收器GarbageCollector源码分析(一)
    python标准库-日志logging
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3451684.html
Copyright © 2011-2022 走看看