ALDS1_4_C
题目大意:请实现一个能执行以下命令的建议“字典”。
insert str:向字典中添加字符串str
find str:当前字典中包含str时输出yes,不包含时输出no
个人简易实现算法如下:
#include <iostream>
#include <string.h>
using namespace std;
int main(void)
{
freopen("in.txt","r",stdin);
int n;
cin >> n;
string order[n]; //记录命令:如insert , find
char c[] = {"\0"};
char res[] = {"\0"};
char dest[] = {"\0"};
int flag = 0; //执行find命令时的标志位,1-表示找到。0-表示找不到
for(int i=0;i<n;i++){
cin >> order[i]; //输入命令
cin >> c; //输入字符串
if(order[i]=="insert") //如果命令是insert
strcat(res,c); //将字符串c拼接在res中
else{ //如果命令是find
char temp[] = {"\0"};
strcpy(temp,c); // CCC
int length_res = strlen(res); ///AAACCC
int length_order = strlen(temp);///CCC
for(int j=0;j<length_res;j++){
strncpy(dest, res+i, length_order); //将res字符串截取下来,赋值给dest
if(strcmp(dest,temp)==0){ // 如果找到字典中的字符串与输入值相同,标志位flag为1,退出循环
flag = 1;
break;
}else{// 如果字典中没有,设为0
flag = 0;
}
}
if(flag == 1){
cout << "yes" << endl;
}else{
cout << "no" << endl;
}
}
}
fclose(stdin);
return 0;
}
运行结果: