The C Programming Language 2nd Edition Execise5-4 Answer

来源:互联网 发布:张大奕的淘宝内衣店 编辑:程序博客网 时间:2024/04/28 08:15

Exercise 5-4. Write the function strend(s,t), which returns 1 if the string t occurs at the
end of the string s, and zero otherwise.

简单问题,复习语言。

最直接的想法:

 

//The C Programming Language 2nd Edition Execise5-4 Answer
//by DaNmarner
//http://blog.csdn.net//DaNmarner
#include<stdio.h>
int strend(char *s,char *t)
{
 char *ps,*pt;
 while (*s != '/0'){
  for(ps = s,pt = t;*ps == *pt;ps++,pt++)
   if(*ps == '/0' || *pt == '/0') break;
  if (*ps == '/0' && *pt == '/0') return 1;
  s++;
 }
 return 0;
}

但其实这个算法效率很低,O(N^2)。下面这个就好多了:

 

//The C Programming Language 2nd Edition Execise5-4 Answer
//by DaNmarner
//http://blog.csdn.net//DaNmarner

#include<stdio.h>
#include<string.h>
int strend2(char *s,char *t)
{
 int ls = strlen(s);
 int lt = strlen(t);
 if (lt > ls) return 0;
 while(s[--ls] == t[--lt] && lt >= 0);
 if (lt == -1) return 1;
 else return 0;
}

这就是O(n)了~

<iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-1391084545775812&amp;dt=1187587170293&amp;lmt=1187587166&amp;format=468x15_0ads_al&amp;output=html&amp;correlator=1187587170273&amp;channel=7913117752&amp;url=file%3A%2F%2F%2FC%3A%2FDocuments%2520and%2520Settings%2FAdministrator%2F%E6%A1%8C%E9%9D%A2%2FCSDN%E6%96%87%E7%AB%A0%E9%A1%B6%E9%83%A8%E5%AF%BC%E8%88%AA.htm&amp;color_bg=FFFFFF&amp;color_text=000000&amp;color_link=0000FF&amp;color_url=000000&amp;color_border=FFFFFF&amp;ga_vid=254352278.1187587170&amp;ga_sid=1187587170&amp;ga_hid=2130092920&amp;flash=9&amp;u_h=768&amp;u_w=1024&amp;u_ah=740&amp;u_aw=1024&amp;u_cd=16&amp;u_tz=480&amp;u_java=true" frameborder="0" width="468" scrolling="no" height="15" allowtransparency="allowtransparency"></iframe>

<iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-1391084545775812&amp;dt=1187587040446&amp;lmt=1187587036&amp;format=468x60_as&amp;output=html&amp;correlator=1187587040416&amp;channel=8802996721&amp;url=file%3A%2F%2F%2FC%3A%2FDocuments%2520and%2520Settings%2FAdministrator%2F%E6%A1%8C%E9%9D%A2%2FCSDN%E6%96%87%E7%AB%A0%E5%BA%95%E9%83%A8.htm&amp;color_bg=FFFFFF&amp;color_text=000000&amp;color_link=0000FF&amp;color_url=000000&amp;color_border=FFFFFF&amp;ad_type=text&amp;ga_vid=1630047283.1187587040&amp;ga_sid=1187587040&amp;ga_hid=4528641&amp;flash=9&amp;u_h=768&amp;u_w=1024&amp;u_ah=740&amp;u_aw=1024&amp;u_cd=16&amp;u_tz=480&amp;u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="allowtransparency"></iframe>

 
原创粉丝点击