时间复杂度要低。考察简单搜索表。
题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1050
// 限时:10ms
// 双重遍历,时间复杂度为O(n*m),超时
// 参考他人博客:查询表,时间复杂度O(n+m),效率杠杠滴
// 段错误:数组开太小
#include <stdio.h>
#include <string.h>
#define SIZE 10000+5
char line[SIZE], str[SIZE];
bool existed[SIZE];
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("E:\\in.txt", "r", stdin);
#endif
memset(existed, false, sizeof(existed));
gets(line);
gets(str);
int i;
for(i=0; str[i] != 0; i++)
{
existed[str[i]] = true;
}
for(i=0; line[i] != 0; i++)
{
if(existed[line[i]] == false)
{
printf("%c", line[i]);
}
}
printf("\n");
return 0;
}