BNU1010

来源:互联网 发布:仿手机淘宝产品详情 编辑:程序博客网 时间:2024/06/05 02:38

Description

由于项目和学习等原因,HK同学最近经常到一些外国文献。结果,他发现,懒惰而且甚至略微有点愚蠢的部分外国编辑居然连英语单词的单数形式变复数形式都处理不好(- -!这个是事实)……这让思维一贯严谨的HK同学很不爽,他决定写一个程序来解决这个问题。

下面是关于如何使复数形式的一个描述:

1:如果需要替换成复数形式的单词出现在特殊表中,则用表中的形式替换。
2:如果是以辅音字母+“y”结尾的单词,将“y”变成“ies”。
3:如果是以“o”,“s”,“ch”,“sh”或者“x”结尾的单词,在结尾添加“es”。
4:对于其他的情况,在单词末添加“s”。

以上4条不能同时满足。

Input

第一行的输入是两个整数L 和 N (0 ≤ L ≤ 20, 1 ≤ N ≤ 100)。接下来的L行为特殊表,每行两个单词,分别表示特殊表中每个单词的单数和复数形式。在特殊表之后会有N行输入,每行一个单词。对于这N个单词,你需要输出它们对应的复数形式。
可以放心,每个单词最多20个字母,并且所有出现的字母都是小写字母('a' 到 'z')。

Output

一个N行的输出,对应着输入的N个单词的复数形式。

Sample Input

3 7rice ricespaghetti spaghettioctopus octopiricelobsterspaghettistrawberryoctopuspeachturkey

Sample Output

ricelobstersspaghettistrawberriesoctopipeachesturkeys 


python:

import strings=raw_input()arr = string.split(s,' ')a=int(arr[0])b=int(arr[1])letter=['a','e','i','o','u']pw=[]key=[]value=[]for i in range(a):    p=raw_input()    arr2=string.split(p,' ')    key.append(arr2[0])    value.append(arr2[1])    adict=dict(zip(key,value))for j in range(b):    pw.append(raw_input())for e in pw:    if e in key:        print adict[e]    elif e.endswith('o') or e.endswith('s') or e.endswith('ch') or e.endswith('sh') or e.endswith('x'):        print e+'es'    elif e.endswith('y') and not(e[len(e)-2] in letter):        print e[0:len(e)-1]+'ies'    else:        print e+'s'