Палиндром. Проверка строки
Пользователь вводит произвольную строку и требуется проверить является ли она палиндромом или нет.
Палиндромом называется строка которая читается с обоих сторон одинаково, например ABCBA
Для этого нам нужно сравнивать зеркальные символы в строке, т.е. 0 и последний, 1 и предпоследний и так далее. Создадим цикл до середины строки (т.е. до str.Length / 2), и будем сравнивать i-тый символ и i-ый символ с конца строки. Как только будет найдено первое не совпадение, то завершаем цикл оператором break. Для того чтобы запомнить что строка не является палндромом введем дополнительную переменную флаг isPalindrome. Изначально зададим ей значение true предполагая что введеная строка является палиндромом. Как только мы нашли расхождение в символах то сбрасываем флаг в false и выходим из цикла.
bool isPalindrome = true; // флаг указывающий является ли строка палиндромом или нет
Console.WriteLine("Введите строку: "); // выводим prompt (приглашение) пользователю
string str = Console.ReadLine(); // считываем строку введенную пользователем
for (int i = 0; i < str.Length / 2; i++) // проходим циклом до середины строки
{
if (str[i] != str[ str.Length - i -1 ]) //проверяем i-ый символ и i-ый символ с конца на не равенство
{
isPalindrome = false; // если они не равны сбрасываем флаг isPalindrome в false
break; // выходим из цикла, т.к. дальнейшая проверка безсмысленна
}
}
//выводим результат в консоль
Console.WriteLine( isPalindrome ? "палиндром" : "не палиндром");