Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 20.10.2020
Сообщений: 15

Проверить, является ли введенное слово палиндромом

22.10.2020, 18:15. Показов 9264. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая проверяет, является ли введенное слово палиндромом. Палиндромом называется слово, которое читается одинаково слева направо и справа налево, например, "КАЗАК".
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2020, 18:15
Ответы с готовыми решениями:

Является ли введенное слово палиндромом
Составить программу, определяющую, является ли введенное слово перевертышем.

Определить, является ли введённое слово палиндромом
Здравствуйте, помогите пожалуйста с задачей, скоро экзамен, а я не понимаю((( Написать программу на языке программирования для...

Проверить, является ли слово палиндромом
3. Дана строка, состоящая из одного слова. Необходимо проверить, является ли это слово палиндромом.

27
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
22.10.2020, 18:42
пролистать колесом мыши в самый низ
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 18:42
Лучший ответ Сообщение было отмечено Andron008 как решение

Решение

С linq:
C#
1
2
3
Console.Write("введите слово: ");
string str = Console.ReadLine().ToLower();
Console.WriteLine(str == string.Concat(str.Reverse()) ? "палиндром" : "не палиндром");
Без linq:
C#
1
2
3
4
5
6
7
8
9
10
            Console.Write("введите слово: ");
            string str = Console.ReadLine().ToLower();
            char[] arr = str.ToCharArray();
            for (int i = 0; i < arr.Length / 2; i++)
            {
                char tmp = arr[i];
                arr[i] = arr[arr.Length - i - 1];
                arr[arr.Length - i - 1] = tmp;
            }
            Console.WriteLine(str == new string(arr) ? "палиндром" : "не палиндром");
1
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
22.10.2020, 18:44
randok, зачем создавать массив чар, потом строку. не бережете вы память сударь
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 18:52
Цитата Сообщение от Enifan Посмотреть сообщение
не бережете вы память сударь
Убедили!
C#
1
2
3
4
5
6
7
8
9
10
            Console.Write("введите слово: ");
            string str = Console.ReadLine().ToLower();
            string revstr = "";
            int len = str.Length - 1;
            while (len >= 0)
            {
                revstr = revstr + str[len];
                len--;
            }
            Console.WriteLine(str == revstr ? "палиндром" : "не палиндром");
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
22.10.2020, 18:56
Цитата Сообщение от randok Посмотреть сообщение
Убедили!
Ну "интернирование строк" роскошная вещь, тут мы тоже много не выигрываем. Скорее даже память захламляем
Не хотите попробовать пройтись циклом с обоих сторон по дефолтной строке ?
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 19:25
Enifan, я так чувствую мы в этой теме все варианты переберем
C#
1
2
3
4
5
6
7
8
9
            bool Check(string s)
            {
                int k = s.Length - 1;
                for (int i = 0; i < s.Length / 2; i++, k--) if (s[i] != s[k]) return false;
                return true;
            }
            Console.Write("введите слово: ");
            string str = Console.ReadLine().ToLower();
            Console.WriteLine(Check(str) ? "палиндром" : "не палиндром");
1
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
22.10.2020, 19:35
Цитата Сообщение от randok Посмотреть сообщение
все варианты переберем
Перебрать не сложно. Выбрать эффективный - куда интереснее Это как никак важный аспект в кодинге.
Большие программы или игры (достигающие тонны гигабайт) рано или поздно начинают тормозить, одна из причин - программист не экономит ресурсы, разбрасывается памятью как тинейджер из богатой семьи. А ведь понимание начинается с малого (основ)...
1
fly
 Аватар для I can
4955 / 4644 / 844
Регистрация: 13.04.2015
Сообщений: 9,840
22.10.2020, 19:37

Не по теме:

Задолбали уже с этими палиндромами...


Такой изврат был? Подключаем Visual Basic
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using Microsoft.VisualBasic;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
             Console.Write("введите слово: ");
            string str = Console.ReadLine().ToLower();
            Console.WriteLine(str == Microsoft.VisualBasic.Strings.StrReverse(str) ? "палиндром" : "не палиндром");
            Console.ReadKey();
        }
    }
}
1
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 19:43
Цитата Сообщение от Enifan Посмотреть сообщение
программист не экономит ресурсы, разбрасывается памятью как тинейджер из богатой семьи
Да, часто встречается подобное. Помню на одной работе в одном продукте разработка так раскидалась ресурсами, что после небольшой анимации фона в приложение оно начало жрать до 30-40% общей мощности слабых процессоров пользователей (имею ввиду процы с парой ядер). Получили по голове и пошли оптимизировать.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
22.10.2020, 20:45
а я вот так выступлю
C#
1
2
3
4
5
6
            static bool IsPalindrom(string str) => Regex.IsMatch(str, @"^(?<N>\w)+.?(?<-N>\k<N>)+(?(N)(?!))$");
            static void Main(string[] args)
            {
                Console.WriteLine(IsPalindrom("redivider"));
                Console.WriteLine(IsPalindrom("divider"));
            }
1
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 21:39
C#
1
2
3
4
5
6
7
8
            string Revers(string s) 
            {  
                if (s.Length <= 1) return s;  
                return Revers(s.Substring(1)) + s[0];  
            } 
            Console.Write("введите слово: ");
            string str = Console.ReadLine().ToLower();
            Console.WriteLine(str == Revers(str) ? "палиндром" : "не палиндром");
1
fly
 Аватар для I can
4955 / 4644 / 844
Регистрация: 13.04.2015
Сообщений: 9,840
22.10.2020, 22:00

Не по теме:

О, рекурсия ...

0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,111
Записей в блоге: 2
22.10.2020, 22:31
Цитата Сообщение от Diamante Посмотреть сообщение
а я вот так выступлю
Ну, а я так:
C#
1
2
3
4
5
6
7
8
9
        static bool IsPalindrom(string str)
        {
            for (int i = 0, k = str.Length - 1; i < str.Length / 2; i++, k--)
            {
                if (str[i] != str[k])
                    return false;
            }
            return true;
        }
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 22:55
Цитата Сообщение от I can Посмотреть сообщение
с этими палиндромами...
Надо оформить куда-нибудь отдельно и всех посылать туда
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            string Revers(char[] s)
            {
                for (int i = 0, k = s.Length - 1; i < k; i++, k--)
                {
                    s[i] ^= s[k]; 
                    s[k] ^= s[i]; 
                    s[i] ^= s[k];
                }
                return new string(s);
            }
            Console.Write("введите слово: ");
            string str = Console.ReadLine().ToLower();
            Console.WriteLine(str == Revers(str.ToCharArray()) ? "палиндром" : "не палиндром");
Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну, а я так:
Было, не считается
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,111
Записей в блоге: 2
22.10.2020, 23:00
Цитата Сообщение от randok Посмотреть сообщение
Было, не считается
Не увидел....


Добавлено через 3 минуты
Цитата Сообщение от randok Посмотреть сообщение
string Revers(char[] s)
Ну, сейчас перемена местами проще делается.
C#
5
(s[i], s[k]) = (s[k], s[i]);
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 23:05
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну, сейчас перемена местами проще делается.
А там не перемена местами
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,111
Записей в блоге: 2
22.10.2020, 23:06
randok, а такой был?
C#
1
2
        static bool IsPalindrom(IEnumerable<char> str)
            => str.Reverse().Zip(str, (r, s) => r == s).All(b => b);
Добавлено через 27 секунд
Цитата Сообщение от randok Посмотреть сообщение
А там не перемена местами
Реверс же вроде?
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
22.10.2020, 23:08
Цитата Сообщение от Элд Хасп Посмотреть сообщение
а такой был?
Нет, не было, хороший вариант в копилку.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Реверс же вроде?
Да, через xor.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,111
Записей в блоге: 2
22.10.2020, 23:16
Цитата Сообщение от randok Посмотреть сообщение
Да, через xor.
Ну, так в каждой итерации же обмен значениями происходит.
Я и показал, что сейчас более типичным делать его через кортежи.

Добавлено через 2 минуты
Цитата Сообщение от randok Посмотреть сообщение
не было, хороший вариант в копилку.
Если параметр использовать не IEnumerable<char> str, а стринг - можно ещё обрезать проверку на половине элементов.
C#
1
2
        static bool IsPalindrom(string str)
            => str.Reverse().Take(str. Length / 2).Zip(str, (r, s) => r == s).All(b => b);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.10.2020, 23:16
Помогаю со студенческими работами здесь

Определить, является ли введенное число палиндромом
Помогите пожалуйста решить эту задачу на языке C#. Заранее СПАСИБО!!!!!!!! Напишите программу, которая определяет, является ли введенное...

Определить, является ли введенное число любой разрядности палиндромом
Определить, является ли введѐнное число любой разрядности палиндромом (например, 1234321 – палиндром, 12345 – не палиндром). ...

Является ли слово палиндромом
Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово палиндромом. Выведите YES или NO.

Определить, является ли слово палиндромом
Нужно определить если слово является палиндромом ,но при этом не использовать реверс,а сравнивать первую букву с последней, и тд.... дата...

Проверить, является ли строка палиндромом
Проверить, является ли введенная строка палиндромом (&quot;А роза упала на лапу Азора.&quot;).Необходимо, чтобы программа не учитывала пробелы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru