查找一个字符串数组中两个或两个以上的相同字符串(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
- 查找一个字符串数组中两个或两个以上的相同字符串(swfit,oc)
- 一个字符串数组,找出他们所有存在两个或者两个以上相同的字符串
- 查找两个字符串中最大的相同子字符串长度
- 查找两个字符串中最大相同的字串
- 查找两个字符(或数字)数组中第一个相同的字符(或数字)
- 查找一个字符串中两个相同的最大的子串
- 取出两个字符串数组的相同元素
- 将两个字符串或一个字符串与数组传入一个,输出字符串中需要的字符位置
- 使用正则表达式将一个字符串中连续的多个(两个或者两个以上)替换为一个空格
- c语言将字符串中连续出现的空格(两个以上)合并成一个
- 如何获取两个字符串中两个相同的字符
- 求字符串中由连续的相同字符组成的最长子串(如果有两个及两个以上的最长子串,则输出第二个)
- 列出两个数组中相同的字符(字符串组成数组)(数组的交集、差集)
- 查找两个字符串的最大相同子串
- 功能:查找两个字符串有没有相同的部分
- 查找两个字符传中最大的相同字符串
- 查找两个字符串中的相同的字符位置
- 找出两个字符串中最长的相同的字符串
- 美团Android自动化之旅—适配渠道包
- 一种解决运行程序报“应用程序配置不正确”的问题
- java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException
- git常用命令
- 机器学习笔记(PRML)
- 查找一个字符串数组中两个或两个以上的相同字符串(swfit,oc)
- MYSQL数据库设计规范与原则
- Intellij IDEA 快捷键(windows)
- 初步使用OllyDbg感想
- Java监听器
- Ubuntu 14.04 搜狗输入法切换快捷键无效的解决方案
- CentOS install etcd 测试
- MAC微信小视频和图片等在本地保存位置地址
- #import <libxml/HTMLparser.h> 出错