Как проверить наличие «почти палиндрома» с ровным несоответствием персонажа? [закрыто]Javascript

Форум по Javascript
Ответить
Anonymous
 Как проверить наличие «почти палиндрома» с ровным несоответствием персонажа? [закрыто]

Сообщение Anonymous »

Мне нужна функция, чтобы определить, является ли строка почти палиндром с ровным несоответствием персонажа. Это означает: < /p>
Строка не является идеальным палиндром (например, «гоночный автомобиль» должен вернуть false). < /P>
можно превратить в палиндром, изменяя именно один символ (например, «Abca» → Изменить 'C' на 'b'). < /P>

Код: Выделить всё

Examples:

Input       Output      Reason

"abca"      True        Change 'c' → 'b' to get "abba"
"abc"       False       Needs ≥2 changes (e.g., "aba" or "cbc")
"a"         False       Already a palindrome (no mismatch)
"abxa"      True        Change 'x' → 'b' to get "abba"
ограничения:

[*] Оптимизировать для O (n) времени и O (1) пространство.
[*] Предположим, что символы ASCII (но unicode Insights приветствуют). /> Я попробовал двух указательный подход, подсчитывая несоответствия, но в случае пропуски несоответствия скрывается ошибки: < /p>

Код: Выделить всё

function isAlmostPalindrome(s) {
let mismatches = 0;
let left = 0, right = s.length - 1;
while (left < right) {
if (s[left] !== s[right]) {
mismatches++;
if (mismatches > 1) return false;
}
left++;
right--;
}
return mismatches === 1; // Rejects perfect palindromes
}
Проблема:
не удастся для "ABC" (возвращает истинно неверно; требуется 2 изменения).
желаемый ответ:
  • поправочный ответ. /> Обработанные случаи краев (нечетная/четная длина, одиночный символ).


Подробнее здесь: https://stackoverflow.com/questions/797 ... r-mismatch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»