rt
请大家比较如下两组代码:1,2,其中的区别在于 ins_find
函数:
inline int ins_find(char *s,bool isf){
//insert find 一体化
int len=strlen(s),now=1;
for(int i=0; i<len; ++i){
int k=idx(s[i]);
if(!T[now].son[k]){
if(isf) return 1;//no
T[now].son[k]=(++size),
// T[++size].ch=k, //第一份代码
T[size].ch=k, //第二份代码
T[size].end=T[size].vis=false;
}
now=T[now].son[k];
}
if(isf){
if(T[now].vis) return 2;//repeat
T[now].vis=true;
return 3;//ok
}
T[now].end=true; return 0;
}
显然第一份代码是错误的,但是竟然过了