1. 程式人生 > >UVa 12543 - Longest Word

UVa 12543 - Longest Word

題目

統計一個文字中的最長的單詞,單詞中可以有連詞符。

分析

按順序判斷統計即可。

說明

還沒搶到回家的票,ε=(´ο`*)))唉。

#include <stdio.h>
#include <string.h>

int is_alphabet(char c)
{
    return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';
}

int main() {
    char buf[10001
], ans[101]; int max_length = 0; while (~scanf("%s", buf) && strcmp(buf, "E-N-D")) { int index = 0, count = 0, start = 0; for (int i = 0; buf[i]; ++ i) { if (is_alphabet(buf[i]) || buf[i] == '-') { count ++; } else { if
(max_length < count) { max_length = count; for (int j = start; j < i; ++ j) { if (buf[j] >= 'A' && buf[j] <= 'Z') { ans[j - start] = buf[j] - 'A' + 'a'; }else { ans[
j - start] = buf[j]; } ans[j - start + 1] = 0; } } count = 0; start = i+1; } } if (max_length < count) { max_length = count; for (int j = start; buf[j]; ++j) { if (buf[j] >= 'A' && buf[j] <= 'Z') { ans[j - start] = buf[j] - 'A' + 'a'; } else { ans[j - start] = buf[j]; } ans[j - start + 1] = 0; } } } printf("%s\n", ans); return 0; }