1050 String Subtraction (20 分)
题目大意
给出两个字符串,在第一个字符串中删除第二个字符串中出现过的所有字符并输出
基本思路
用hashtable[256]数组变量标记str2出现过的字符为true,输出str1的时候根据hashtable[str1[i]]是否为true,如果是true就不输出
代码
#include <bits/stdc++.h>
using namespace std;
char str1[10010];
char str2[10010];
bool hashtable[128];
int main(){
//读入两行带空格的字符串 并 计算字符串长度
cin.getline(str1,10010);
cin.getline(str2,10010);
int len1=strlen(str1);
int len2=strlen(str2);
//遍历字符串str2,标记其中出现过的字符的哈希值hashtable[str2[i]]置为true
for(int i=0;i<len2;i++){
hashtable[str2[i]]=true;
}
//遍历字符串str1,如果其中hashtable[str[i]]为false,说明这个字符并没有在str2中出现过,输出这个字符
for(int i=0;i<len1;i++){
if(hashtable[str1[i]]==false){
printf("%c",str1[i]);
}
}
}