The C Programming Language 2nd Edition Execise5-4 Answer

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.youkuaiyun.com//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.youkuaiyun.com//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)了~

 
Swift是一种用于iOS和OS X应用的全新编程语言,它建立在最好的C和Objective-C语言中,并且没有C语言的兼容性限制。Swift采用安全的编程模式,增加了现代功能使编程更容易、更灵活、更有趣。Swift背靠成熟且备受宠爱的Cocoa 和 Cocoa Touch框架的支持,这是一个重新构想软件开发的机会。   Swift经过了数年的酝酿,Apple通过改进现有的编译器、调试器和框架结构奠定了Swift的基础,并通过Automatic Reference Counting(ARC)简化了内存管理。Swift的框架建立在坚实的Foundation和Cocoa上,已实现现代化和彻底标准化。 Objective-C本身已经逐步发展到到支持blocks、 collection literals 和modules,使框架采用不中断的现代语言技术。感谢这个基础,我们可以为Apple软件发展的未来引入一种新语言。   对Objective-C开发者来说Swift看起来很熟悉,它具有Objective-C命名参数的可读性和动态对象模型的力量,提供了无缝接入现有Cocoa框架和与Objective-C混编的能力。建立在这个共同点上,Swift引入了许多新的特性、统一的程序和面向对象的语言部分。   Swift对于新程序员是友好的,作为一个具有表现力和娱乐性的脚本语言,它是第一个获得工业品质的系统编程语言。它支持playgrounds,一个允许程序员调试Swift代码并立即看到结果,而无需反复编译运行程序的新功能。   Swift结合了最好的现代语言思维和智慧 - 来自广大的苹果工程师文化。编译器针对性能进行了优化,语言也进行了发展优化,而无需任何牺牲。它的设计从“Hello World”扩展到整个操作系统,这一切使得Swift对于开发者和Apple是一个有意义的投资。   Swift以极好的方式来编写的iOS和OS X应用,并将继续发展与新特性和功能。Swift充满野心,我们已经迫不及待看你能用它创造什么。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值