题目链接->link
题意描述
输入两字符串s1,s2,输出s1-s2,即s2所有字符在s1不能出现。
思路
- 输入s2,遍历s2并记录bool型hashmap[]值为false;然后遍历s1,如果hashmap[s1[i]]的值为false则跳过。
代码
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
using namespace std;
const int maxn=10005;
char str1[maxn],str2[maxn];
bool hashmap[128];//存储字符能否输出
int main(){
memset(hashmap, true, sizeof(hashmap));
fgets(str1,maxn,stdin);
fgets(str2,maxn,stdin);
int len1=strlen(str2);
for(int i=0;i<len1;i++){//遍历str2
hashmap[str2[i]]=false;
}
int len2=strlen(str1);
for(int i=0;i<len2;i++){//遍历str1
if(hashmap[str1[i]])printf("%c",str1[i]);
}
printf("\n");
return 0;
}