参考资料:http://blog.csdn.net/wall_f/article/details/8532098
感觉最近应该休息休息了,什么都没状态。。。
STL函数的话抽时间补一补,这道题用STL做的,不能找2个字串加,这样会超时,可以将一个大串分解为2个字串进行查找,这点一开始没想到
还有strcnpy的用法也补了一下。。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<map>
#include<set>
using namespace std;
#define MAXD 120000 + 10
#define LEN 100
char word[MAXD][LEN];
set<string>St;
int main(){
int n = 0;
while(scanf("%s",word[n++]) != EOF){
St.insert(word[n - 1]);
}
for(int i = 0; i < n ; i++) {
int L = strlen(word[i]);
for(int j = 1; j < L;j++){
char temp1[LEN] = "\0";
char temp2[LEN] = "\0";
strncpy(temp1,word[i],j);
strncpy(temp2,word[i] + j,L - j);
if(St.find(temp1)!= St.end()&& St.find(temp2) != St.end()){
puts(word[i]);
break;
}
}
}
return 0;
}