切換
舊版
前往
大廳
主題

ZeroJudge - e268: 11233 - Deli Deli 解題心得

Not In My Back Yard | 2019-10-26 22:55:50 | 巴幣 0 | 人氣 146

題目連結:


題目大意:
給定兩正整數 L 、 N (0 ≦ L ≦ 20 , 1 ≦ N ≦ 100),代表接下來有 L 列輸入。每列有兩個由小寫字母組成的英文字詞,前者代表單數的型態、後者則為複數型態。

再接著有 N 列輸入,每列給定一個單數型的英文單字。請輸出其複數型。

複數型的規則是:
先從已給定的那些單複數字詞開始找,找到就輸出對應的複數型;如果沒有在給定的單字裡面,則根據其結尾有不同的變化方式:
如果結尾是子音字母 + 字母 y ,則將 y 改成 ies ;
如果結尾是「o」、「s」、「ch」、「sh」、「x」,則在結尾加上 es ;
以上皆非的話,直接加 s 於結尾。



範例輸入:
3 7
rice rice
spaghetti spaghetti
octopus octopi
rice
lobster
spaghetti
strawberry
octopus
peach
turkey


範例輸出:
rice
lobsters
spaghetti
strawberries
octopi
peaches
turkeys


解題思維:
因為給定的特定單複數型之字詞數量不多,所以可以直接存起來然後要查找時直接用迴圈跑一次。

如果從給定的字詞中找不到,就直接照著題目的要求判斷字詞結尾來決定複數型。但是要注意字詞的長度再取結尾(因為可能不滿兩個字母)

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作