【发布时间】:2012-11-07 21:08:00
【问题描述】:
我编写了以下方法来确定一个长单词是否包含一个较短的单词,以及我传递字母的顺序似乎会影响结果。
我注意到,如果我喂它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;
}
【问题讨论】:
标签: objective-c while-loop anagram