这个题目的for循环不能写成这样for(int i = 0; i < strlen(str); i++) strlen(str)是一个O(N)的过程,如果这样写时间复杂度会上升到N^2,会超时。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iomanip>
using namespace std;
#define MAX 10000+10
int vis[128];
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
char str1[MAX], str2[MAX];
gets(str1);
gets(str2);
for (int i = 0; i < strlen(str2); i++)
vis[(int)str2[i]] = 1;
for (int i = 0; i < strlen(str1); i++)
{
if (vis[(int)str1[i]] != 1)
printf("%c", str1[i]);
}
return 0;
}