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 阅读(403) 评论(0)  编辑 收藏 引用 所属分类: 面试小算法

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


<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

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

常用链接

留言簿(4)

随笔分类(70)

随笔档案(71)

charles推荐访问

搜索

  •  

积分与排名

  • 积分 - 49500
  • 排名 - 452

最新评论

阅读排行榜

评论排行榜