PKU 3366 Deli Deli 题解

PKU 3366 Deli Deli 题解

学过英语的就都知道怎么做
没学过的题目也看不懂的。
我这种水平的都能看懂所以感觉没什么好注意的了
 1 #include < stdio.h >
 2 #include < map >
 3 #include < string >
 4 using   namespace  std;
 5
 6 map < string , int > p1;
 7
 8 int  main()
 9 {
10    char str1[50],str2[50][50],str[50];
11    string s;
12    int m,n,len,i;
13    scanf("%d %d"&m, &n);
14    for(i = 0; i < m; i++)
15    {
16        scanf("%s %s",str1,str2[i]);
17        s = str1;
18        p1[s] = i;
19    }

20    while(n--)
21    {
22        scanf("%s",str);
23        s = str;
24        if(p1.count(s) == 1)
25        {
26            printf("%s\n",str2[p1[s]]);
27            continue;
28        }

29        len = strlen(str);
30        if(len == 1 && str[len-1== 'y')
31        {
32             str[len-1= 'i';
33            str[len] = 'e';
34            str[len+1= 's';
35            str[len+2= '\0';
36        }

37        else if(len > 1 && str[len-1== 'y' && str[len-2!= 'a' && str[len-2!= 'i' && str[len-2!= 'o' && str[len-2!= 'e' && str[len-2!= 'u')
38        {
39            str[len-1= 'i';
40            str[len] = 'e';
41            str[len+1= 's';
42            str[len+2= '\0';
43        }

44        else if(len > 1 && str[len-1== 'h' && (str[len-2== 's' || str[len-2== 'c'))
45        {
46            str[len] = 'e';
47            str[len+1= 's';
48            str[len+2= '\0';
49        }

50        else if(str[len-1== 's' || str[len-1== 'o' || str[len-1== 'x')
51        {
52            str[len] = 'e';
53            str[len+1= 's';
54            str[len+2= '\0';
55        }

56        else
57        {
58            str[len] = 's';
59            str[len+1= '\0';
60        }

61        printf("%s\n",str);
62    }

63    return 0;
64}

65
66

你可能感兴趣的:(PKU 3366 Deli Deli 题解)