長い単語に短い単語が含まれているかどうかを調べる次のメソッドを作成しました。文字を渡す順序が結果に影響するようです。
absconds
餌を与えbassy
て正しく報告NO
すると、文字をアルファベット順に並べて と を与えるabcdnoss
とabssy
、 が得られることに気付きましたYES
。これがなぜなのかよくわかりません - 誰でも問題を見つけることができますか?
- (BOOL) does: (NSString* ) longWord contain: (NSString *) shortWord {
while([longWord length] > 0 && [shortWord length] > 0) {
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString: [shortWord substringToIndex: 1]];
if ([longWord rangeOfCharacterFromSet: set].location == NSNotFound) {
return NO;
}
longWord = [longWord substringFromIndex: [longWord rangeOfCharacterFromSet: set].location+1];
shortWord = [shortWord substringFromIndex: 1];
}
return YES;
}