查找一个字符串数组中两个或两个以上的相同字符串(swfit,oc)

来源:互联网 发布:四级网络课程哪个好 编辑:程序博客网 时间:2024/05/19 05:34

起因

在论坛上看到的问题,给你一个字符串数组,找出他们所有存在两个或者两个以上相同的字符串,例如数组[@”a”,@”b”,@”c”,@”a”],那么找出的应该是[@”a”],(提示:给的数组个数可能非常大,请注意算法效率).请编程

所以就写了一下,写完了之后又测了下速度,发现大有惊喜!

挫败

首先我的想法是每找到一组相同的字符串就把数组中这个字符串删除
我是用swift写的,写了以后看到论坛的回帖中有一个比较好的方法使用range和set的组合就顺手试了试。没想到我写的居然和那个慢了一个数量级。

不甘心

这时候我还是不甘心啊,凭什么啊,明明那种算法会多处理数据我的不会啊。

反击

所以我试了试用swift写了一遍回帖的方法。但是有一些问题写不下去,因为方法不太一样。写出来的比OC的慢,但是我发现慢的有点离谱啊!

绝地反击

然后我用OC写了一遍我的方法,这时候我的世界是充满傲娇的,比回帖的set&range方法快了一个数量级,开心开心。

反思

从这几个实验中发现 swift在这方面的处理上慢了OC一个数量级啊 明显要等好长时间

上图

OC中回帖的方法
这里写图片描述
swift中回帖方法有瑕疵
这里写图片描述swift中我的方法
这里写图片描述
OC中我的方法
这里写图片描述

总结

可以发现 swift在这方面真的很差啊同样的算法差了好几个数量级
25.34秒VS0.33秒完败啊

0 0
原创粉丝点击