Неизвестно, какой вам нужен язык, поэтому напишу общий алгоритм.
Пусть нам дана строка S и нам известна её длина |S|.
Двумя указателями
i = 1
j = |S|
Проходим по строке
p = true
while i < j {
if (S[i] != S[j}) {
p = false
break
}
i++
j--
if (p) {
print("YES")
} else {
print("NO")
// PascalABC.NET 3.4, сборка 1717 от 20.07.2018
// Внимание! Если программа не работает, обновите версию!
begin
var s := ReadLnstring('Введите строку').ToWords.First.ToLower;
if s = s.Inverse then Println('Палиндром')
else Println('Не палиндром')
end.
Неизвестно, какой вам нужен язык, поэтому напишу общий алгоритм.
Пусть нам дана строка S и нам известна её длина |S|.
Двумя указателями
i = 1
j = |S|
Проходим по строке
p = true
while i < j {
if (S[i] != S[j}) {
p = false
break
}
i++
j--
}
if (p) {
print("YES")
} else {
print("NO")
}
// PascalABC.NET 3.4, сборка 1717 от 20.07.2018
// Внимание! Если программа не работает, обновите версию!
begin
var s := ReadLnstring('Введите строку').ToWords.First.ToLower;
if s = s.Inverse then Println('Палиндром')
else Println('Не палиндром')
end.