UVA-10815 Andy's First Dictionary

来源:互联网 发布:淘宝gta5刷钱靠谱吗 编辑:程序博客网 时间:2024/05/27 19:26

2016-07-13

UVA - 10815 Andy's First Dictionary

题目大意:输入文章,将文章中的单词按字典序排列输出。

解题思路:储存每个单词然后排序。时间复杂度比较大,容易 TLE,要优化算法,最后用了qsort才AC。

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;bool judge(char c) {    if( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') )        return true;    else    return false;}int comp(const void *a , const void *b) {    char *_a = (char*)a;    char *_b = (char*)b;    return    strcmp(_a , _b);}  char str[50000][2000];int main () {    char c;    int num = 0;    while ( (c = getchar()) != EOF) {        int i = 0;         if ( judge(c) ) {            while ( judge(c) ) {                if ( c >= 'A' && c <= 'Z' )                    c = c - 'A' + 'a';                str[num][i++] = c;                c = getchar();            }            str[num][i] = '\0';            num++;        }    }    qsort(str , num , 2000 , comp);     cout << str[0] << endl;    for (int i = 1; i < num; i++) {        if ( !strcmp(str[i] , str[i-1]) )            continue;        else    cout << str[i] << endl;    }    return 0;}


1 0
原创粉丝点击