gpt4 book ai didi

objective-c - 如何循环搜索数组?

转载 作者:行者123 更新时间:2023-12-04 06:25:11 27 4
gpt4 key购买 nike

这与其说是一个紧迫的问题,不如说是一个好奇的问题。这个问题正在寻找一种更好的方法来执行以下操作,意思是不使用两个 for循环。

我有一个 NSArray *arrayNSString s 和方法 -(BOOL)isGoodString:(NSString *)string .我想在随机位置跳入数组并找到第一个好的字符串,如有必要,环绕末尾。但是,可能没有好的字符串,所以我也需要知道这一点。这是当前的实现:

-(NSString *)randomGoodString {
int N = [array count]
int start = arc4random() % N;
for (int j=start; j<N ; ++j) {
if isGoodString([array objectAtIndex:j]) {
return [array objectAtIndex:j];
}
}
for (j=0; j<start ; ++j) {
if isGoodString([array objectAtIndex:j]) {
return [array objectAtIndex:j];
}
}
return @"";
}

有什么建议?效率会很好,但因为这真的更多是出于好奇,所以任何在有限时间内有效的东西都会很高兴听到。

最佳答案

使用模数消除第二个搜索循环:

-(NSString *)randomGoodString {
int N = [array count]
int start = arc4random() % N;
for (int j=0; j<N ; ++j) {
index = (j+start)%N;
if isGoodString([array objectAtIndex:index]) {
return [array objectAtIndex:index];
}
}
return @"";
}

关于objective-c - 如何循环搜索数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6117264/

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