zoukankan      html  css  js  c++  java
  • uva Andy's First Dictionary

    题目很简单,数组开大就好,5000但加上重复就不够了10000都小,sort排序前闭合后开,对二维字符窜排序用结构体,所以只有一组的时候只是本身但是不会出现RE情况,还有一点 “    ...   a”这组数据,若不先判断掉前面的符号就存储,

                  输出的时候会

                                   a有无谓的空行

    #include<stdio.h>
    #include<string.h>
    #include<ctype.h>
    #include<algorithm>
    using namespace std;
    
    char ss[100000][300];
    
    struct Chr
    {
        char nam[300];
    }chr[100000];
    
    bool cmp(Chr a,Chr b)
    {
        return strcmp(a.nam,b.nam)<0;
    }
    
    int main()
    {
        int i,len;
        int k1,k2;
        int cas=0;
        k1=k2=0;
        while(gets(ss[cas])!=NULL)
        {
            len=strlen(ss[cas]);
            
            for (i=0;i<=len;i++)
            {
                if(isupper(ss[cas][i]))  ss[cas][i]+=32;
                if(!isupper(ss[cas][i]) && !islower(ss[cas][i]))
                {
                    if(isupper(chr[k1].nam[0]) || islower(chr[k1].nam[0]))
                    {
                        chr[k1].nam[k2]='\0';
                        k1++;
                        k2=0;
                    }
                }
                else chr[k1].nam[k2++]=ss[cas][i];
            }
            cas++;
        }
        sort(chr,chr+k1,cmp);
        for (i=0;i<k1;i++)
        {
            if(strcmp(chr[i].nam,chr[i+1].nam)!=0 && (isupper(chr[i].nam[0]) || islower(chr[i].nam[0]))) printf("%s\n",chr[i].nam);
        }
        //if(strcmp(chr[i].nam,chr[i-1].nam)!=0) printf("%s\n",chr[i].nam);
        return 0;
    }
  • 相关阅读:
    扩展欧几里得(exgcd)与同余详解
    卡常模板
    文艺平衡树(区间翻转)
    Motto
    PKUWC2019划水记
    【模板】Splay(洛谷P3391)
    【PKUSC2018】最大前缀和
    【PKUWC2018】随机算法
    【PKUWC2018】Slay the Spire
    【PKUWC2018】Minimax
  • 原文地址:https://www.cnblogs.com/zsboy/p/2611076.html
Copyright © 2011-2022 走看看