#P1951. Extra Krunch

Extra Krunch

题目描述:

一个精简词(krunchedwordkrunched word)既不包含元音字母(“A”、“E”、“I”、“O”和“U”)(“A”、“E”、“I”、“O” 和 “U”),也没有重复的字母。从单词 MISSISSIPPI“MISSISSIPPI” 中去除元音字母以及出现两次或更多次的字母后,就得到了 MSP“MSP”。在一个精简词中,某个字母只会出现一次,且是该字母在未精简词中首次出现的情况。元音字母绝不会出现。

类似地,精简短语(krunchedphraseskrunched phrases)也没有元音字母且没有重复的字母。考虑这样一个短语:

RAILROAD CROSSING

以及它的精简版本

RLD CSNG

空格的精简方式有所不同。空格会被去除,使得精简后的短语开头和结尾都没有空格,并且绝不会有连续的两个空格,同时标点符号前面也不会有空格。在其他情况下,空格不会被去除。如果我们用 “_” 来表示空格,

MADAM_I_SAY_I_AM_ADAM__

精简版本

MD_SY

其中仅存的一个空格用 "_" 表示。

编写一个程序,读取一行输入内容(长度范围在 227070 个字符之间),然后对其进行精简处理。将精简后的单词或短语输出到文件中。输入的这一行内容仅包含大写字母、空格以及标准的标点符号:句号、逗号和问号。

输入:

一行待精简的内容。

输出:

一行遵循上述规则的精简后的内容。

输入数据1

NOW IS THE TIME FOR ALL GOOD MEN TO COME TO THE AID OF THEIR COUNTRY.

输出数据1

NW S TH M FR L GD C Y.

来源:

美国计算机奥林匹克竞赛(USACO)2002 年 2 月赛