gpt4 book ai didi

iphone - 使用计数值对数组进行排序

转载 作者:行者123 更新时间:2023-11-29 13:25:37 27 4
gpt4 key购买 nike

我有一个包含一些字符串的数组。为字符串的每个字符分配一个整数值。例如 a=2,b=5,c=6 ,o=1,k=3 等

a 字符串中的最终值是字符值的总和。因此,对于示例字符串“BOOK”,该字符串将存储为“BOOK (7)”。同样,每个字符串都有一个最终的整数值。我想用存储在每个数组索引中的字符串中的这些最终整数值对这些数组进行排序。该数组包含超过 200,000 个单词。所以排序过程应该非常快。有什么方法吗?

最佳答案

一个残酷的快速示例可能是,如果您的字符串结构始终相同,例如“Book (7)”,您可以通过查找“()”之间的数字来对字符串进行操作,然后您可以使用字典来临时存储对象:

    NSMutableArray *arr=[NSMutableArray arrayWithObjects:@"Book (99)",@"Pencil (66)",@"Trash (04)", nil];
NSLog(@"%@",arr);

NSMutableDictionary *dict=[NSMutableDictionary dictionary];
//Find the numbers and store each element in the dictionary
for (int i =0;i<arr.count;i++) {
NSString *s=[arr objectAtIndex:i];
int start=[s rangeOfString:@"("].location;
NSString *sub1=[s substringFromIndex:start];
NSString *temp1=[sub1 stringByReplacingOccurrencesOfString:@"(" withString:@""];
NSString *newIndex=[temp1 stringByReplacingOccurrencesOfString:@")" withString:@""];
//NSLog(@"%d",[newIndex intValue]);
[dict setValue:s forKey:newIndex];
}
//Sorting the keys and create the new array
NSArray *sortedValues = [[dict allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSMutableArray *newArray=[[NSMutableArray alloc]init];
for(NSString *valor in sortedValues){
[newArray addObject:[dict valueForKey:valor]];
}
NSLog(@"%@",newArray);

这打印:

(
"Book (99)",
"Pencil (66)",
"Trash (04)"
)

(
"Trash (04)",
"Pencil (66)",
"Book (99)"
)

关于iphone - 使用计数值对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13207890/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com