您的位置:首页 > 编程语言 > C语言/C++

POJ 2801 填词游戏

2013-06-22 12:15 309 查看

题目

这是一个需要理解的题目,看原题就点击后面链接:题目描述

理解题意

我觉得,读题的时候要要把握两点,一个是Input中提到的至少有一个正确答案,另一个是Output中要求,按单词顺序输出结果。最开始的时候,我还想着怎么去找出这些单词,但是经过一番提炼,其实只用把先把以后字母存放到一个数组中,然后根据单词的字母去删减数组中的元素,最后再打印出幸存的字母即可。

源代码

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
int m, n, p;
int characters[26];
cin >> m >> n >> p;

for (int i = 0; i < 26; i++)
{
characters[i] = 0;
}

for (int i = 0; i < n; i++)
{
char c;

for (int j = 0; j < m; j++)
{
cin >> c;
characters[c - 'A']++;
}

}

for (int i = 0; i < p; i++)
{
char word[100];
cin >> word;

for (int j = 0; j < strlen(word); j++)
{
characters[word[j] - 'A']--;
}
}

for (int i = 0; i < 26; i++)
{
if (characters[i] > 0)
{
for (int j = 0; j < characters[i]; j++)
{
cout << (char)(i + 'A');
}
}
}

cout << endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ POJ