posts - 71,  comments - 41,  trackbacks - 0

这个虽然简单,效率也不高,但面试还是经常考的,试着写写看。Coding makes you exact

 1 const   char *  MyStrStr( const   char   * text,  const   char   * pattern)
 2 {
 3      int  i  =   0 , j  =   0 ;
 4
 5      while  (pattern[i]  &&  text[j])
 6      {
 7          if  (pattern[i]  ==  text[j])
 8          {
 9              ++ i;
10              ++ j;
11         }
 
12          else
13          {
14             i  =   0 ;
15             j  =  j  -  i  +   1 ;
16         }

17     }
// while
18
19      if  ( ! pattern[i])
20      {
21          return  text  +  j  -  i;
22     }
 
23      else
24      {
25          return   0 ;
26     }

27 }

需要注意的地方是line#15, line#21。j - i 表示之前前进的步数,+1表示从下个位置比较
posted on 2006-11-16 17:53 Charles 阅读(395) 评论(0)  编辑 收藏 引用 所属分类: 面试小算法

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

决定开始写工作日记,记录一下自己的轨迹...

常用链接

留言簿(4)

随笔分类(70)

随笔档案(71)

charles推荐访问

搜索

  •  

积分与排名

  • 积分 - 48113
  • 排名 - 455

最新评论

阅读排行榜

评论排行榜