• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 将 NSStrings 与 NSArray 中的单词匹配的最快方法

[复制链接]
菜鸟教程小白 发表于 2022-12-12 11:27:04 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个超过 2000 个单词的 NSArray 以及同样长的分数列表。我想遍历用户输入的句子/文本文件中的每个单词,并为每个单词获取列表中存在的每个单词的分数。以下是我目前这样做的方式,但我怀疑这是最快的方式。我的问题是,是否有更快的方法来完成我想要完成的工作?

  [sentence enumerateSubstringsInRange:NSMakeRange(0, [sentence length])
                               options:NSStringEnumerationByWords | NSStringEnumerationLocalized
                            usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
                                NSUInteger index=[wordArray indexOfObject:substring];
                                if (index!=NSNotFound) {
                                    double score=scoreArray[index];
                                    do something with the score
                                        }
                            }];



Best Answer-推荐答案


2000 是一个很小的数组。在你走远之前,read Knuth's view about premature optimization .看到明显的问题后,努力加快速度。如果你达到了这一点,这听起来确实是 NSMutableDictionary 的一个很好的应用程序。它可以有 2k 个单词键,进行(类似 NSSet)的查找,并保留关联的值(应用中的“分数”)。

所以对于文件中的每个单词:

NSNumber *score = self.dictionary[word];
if (score) {
    NSNumber *newScore = // whatever
    self.dictionary[word] = newScore;
}

如果顺序很重要,您可以随时进行事后排序。

关于ios - 将 NSStrings 与 NSArray 中的单词匹配的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25395717/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap