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.
简单问题,复习语言。
最直接的想法:
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)。下面这个就好多了:
#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)了~
name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-1391084545775812&dt=1187587170293&lmt=1187587166&format=468x15_0ads_al&output=html&correlator=1187587170273&channel=7913117752&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&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=000000&color_border=FFFFFF&ga_vid=254352278.1187587170&ga_sid=1187587170&ga_hid=2130092920&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=16&u_tz=480&u_java=true" frameborder="0" width="468" scrolling="no" height="15" allowtransparency="allowtransparency">
name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-1391084545775812&dt=1187587040446&lmt=1187587036&format=468x60_as&output=html&correlator=1187587040416&channel=8802996721&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&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=000000&color_border=FFFFFF&ad_type=text&ga_vid=1630047283.1187587040&ga_sid=1187587040&ga_hid=4528641&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=16&u_tz=480&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="allowtransparency">