Привет, ребята, ниже приведен фрагмент кода, который я использовал для школьного задания.Всякий раз, когда я ввожу слово с буквой О (это заглавная буква О), оно терпит неудачу!Всякий раз, когда в этой программе есть одна или несколько заглавных О, она возвращает false и записывает: предложение, а не палиндром.
Палиндром, для людей, которые не знают, что такое палиндром, - это слово, которое является одним и тем же.читать слева направо и назад.(например, lol, kayak, reviver и т. д.) Я обнаружил эту ошибку при попытке проверить самый старый из когда-либо обнаруженных палиндромов: SATOR AREPO TENET OPERA ROTAS.
Когда я изменяю все заглавные o на строчные o, это работаети возвращает истину.Позвольте мне четко заявить, с этим фрагментом кода ВСЕ предложения / слова с заглавной О возвращают ложь.Достаточно одной заглавной буквы 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];
}
Итак, это какая-то странная ошибка в Какао?Или я что-то упустил?