面试遇到的题目:strstr 子串查找

 

代码
char *strstr(char *buf, char *sub) 

{
    
char *bp, *sp;
    
if (!*sub)
        
return buf;
    
while (*buf) {
        bp 
= buf;
        sp 
= sub;
        
do {
            
if (!*sp)
                
return buf;
        } 
while (*bp++ == *sp++);
        buf 
+= 1;
    }
    
return 0;
}
更加高效的算法还有KMP算法

KMP是字符串匹配的高效算法。

它的基本思路是,对于模式串建立一个“失败转移表”(fail transform table)。设模式串为B,原串为A,也就是说,当A[i]!=B[j]的时候,A[i]可能与B[P[j]]匹配。P可以在事先对B进行一次“自匹配”以计算出来。

 

 

 

 

posted on 2010-07-12 15:28  庄冠华  阅读(340)  评论(0编辑  收藏  举报

导航