어떻게이 중첩 된 for 루프를 최적화 할 수 있습니까?이 중첩 for 루프를 최적화하려면 어떻게해야합니까?
프로그램은 단어 텍스트 파일에서 생성 된 배열의 각 단어를 통과해야하며, 8자를 초과하면 goodWords
배열에 추가하십시오. 인사가 배열에 추가되면
, 나는 등 접견 또는 인사말 또는 안내 인,
NSString *string = [NSString stringWithContentsOfFile:@"/Users/james/dev/WordParser/word.txt" encoding:NSUTF8StringEncoding error:NULL];
NSArray *words = [string componentsSeparatedByString:@"\r\n"];
NSMutableArray *goodWords = [NSMutableArray array];
BOOL shouldAddToGoodWords = YES;
for (NSString *word in words)
{
NSLog(@"Word: %@", word);
if ([word length] > 8)
{
NSLog(@"Word is greater than 8");
for (NSString *existingWord in [goodWords reverseObjectEnumerator])
{
NSLog(@"Existing Word: %@", existingWord);
if ([word rangeOfString:existingWord].location != NSNotFound)
{
NSLog(@"Not adding...");
shouldAddToGoodWords = NO;
break;
}
}
if (shouldAddToGoodWords)
{
NSLog(@"Adding word: %@", word);
[goodWords addObject:word];
}
}
shouldAddToGoodWords = YES;
}
을 원하지 않는 :하지만주의해야 할 점은, 예를 들어, 난 단지 루트 단어가 goodWords 배열에 있어야 할 것입니다
그것은 내 버전보다 약 50 배 빠릅니다;) – Jasarien
@Jasarien hasPrefix :'hasPrefix :'는 대소 문자를 구별하기 때문에'hasPrefix :'보다 조금 더하고 싶을 수도 있습니다 ... –
잘 작동했습니다. 전체 파일은 소문자 단어로 이루어져 있으므로 문제는 아닙니다. – Jasarien