前言:一般题目都是秒杀的,刷起来有点费时间了,感觉要学点奇淫技巧了。哈哈哈。先记录一下,这道我觉得很“简单”的题,咋搞我心态的。
1 关于找字符串的题目
然后我目前是用c语言用的多一点,后面估计会转c++了
int minExtraChar(char * s, char ** dictionary, int dictionarySize)
{
int len = strlen(s);
int cut = 0;
int up = 0;
int value = 0;
char* find = (char*)malloc(len+1);
find[len] = '\0';
memset(find, 0 ,len);
for(int i = 0;i < dictionarySize;i++){
cut = strlen(dictionary[i]);
FLAG:
up = 0;
for(int j = 0;j < len;j++){
if(s[j] == dictionary[i][up]){
if(value){
printf("%c",s[j]);
find[j] = 1;
}
up++;
if(up == cut ){
if(!value){
value = 1;
goto FLAG;
}else{
value = 0;
break;
}
}
}
}
}
cut = 0;
for(int i = 0;i < len;i++){
if(find[i] != 1){
cut++;
}
}
return cut;
}
结果是过了402个用例
原因是dictionary中出现的子串会重复出现在s中collo我只遍历了一次。
构造起来太繁杂了,我竟然调了一个小时,我的妈呀。
以后自己看到的话,再感慨一下吧