Эй, люди, внизу - часть кода, которую я использовал для школьного задания. Всякий раз, когда я ввожу слово, с O в нем (который является столицей o), он терпит неудачу! Всякий раз, когда в этой программе есть один или несколько капитала O, он возвращает false и logs: предложение не палиндром.Странная ошибка какао?
Палиндром для людей, которые не знают, что такое палиндром, - это слово, которое читается слева направо и назад. (например, lol, kayak, reviver и т. д.) Я нашел эту ошибку при попытке проверить «самый старый» палиндром, когда-либо найденный: SATOR AREPO TENET OPERA ROTAS.
Когда я меняю все капитальные буквы o на строчные буквы o, он работает и возвращает true. Позвольте мне четко заявить, что этот фрагмент кода ВСЕ предложения/слова с возвратом капитала O false. Для завершения этой программы достаточно одного капитала o.
-(BOOL)testForPalindrome:(NSString *)s position:(NSInteger)pos {
NSString *string = s;
NSInteger position = pos;
NSInteger stringLength = [string length];
NSString *charOne = [string substringFromIndex:position];
charOne = [charOne substringToIndex:1];
NSString *charTwo = [string substringFromIndex:(stringLength - 1 - position)];
charTwo = [charTwo substringToIndex:1];
if(position > (stringLength/2)) {
NSString *printableString = [NSString stringWithFormat:@"De following word or sentence is a palindrome: \n\n%@", string];
NSLog(@"%@ is a palindrome.", string);
[textField setStringValue:printableString];
return YES;
}
if(charOne != charTwo) {
NSLog(@"%@, %@", charOne, charTwo);
NSLog(@"%i", position);
NSLog(@"%@ is not a palindrome.", string);
return NO;
}
return [self testForPalindrome:string position:position+1];
}
Итак, это какая-то странная ошибка в какао? Или я что-то упускаю?
- B
Вы пробовали пошаговый отладчик? Можете ли вы опубликовать некоторые примеры из примера? – mkb
Просто интересно (так что я могу проверить это сам), что означает 'позиция'? – Joshua
При первом вызове функции позиция должна быть 0, после чего функция выполняет некоторую рекурсию, одновременно увеличивая позицию. –