|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.06.2019, 11:31 | #1 |
Новичок
Пользователь
Регистрация: 21.06.2019
Сообщений: 10
|
Помогите понять логику решения
Здравствуйте, я новичок в программировании и столкнулась с задачей определения палиндромов, то есть слов, которые одинаково читаются справа налево и слева направо (функция принимает строку, проверяет палиндром ли она и возвращает true или false). Портал, на котором я учусь, предлагает следующее решение задачи:
Код:
В общем, я была бы очень благодарна, если кому-нибудь будет не лень прокомментировать это решение! |
21.06.2019, 11:34 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,724
|
|
21.06.2019, 11:35 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
абба
сравнивается в цикле 1-ая и 4-ая, 2-ая и 3-ья буквы. совпадают - палиндром. если букв нечетное количество, то среднюю нет необходимости сравнивать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.06.2019, 12:13 | #4 |
Новичок
Пользователь
Регистрация: 21.06.2019
Сообщений: 10
|
|
21.06.2019, 12:15 | #5 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,724
|
А подставить цифирки это проблема для вас?
s[0] и s[s.size()-1] s[1] и s[s.size()-2] ... |
21.06.2019, 12:18 | #6 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
|
21.06.2019, 14:43 | #7 | |
Новичок
Пользователь
Регистрация: 21.06.2019
Сообщений: 10
|
Цитата:
Я же написала, я совсем недавно начала учить язык, и мне в принципе в конкретно этом примере не совсем понятно, что происходит в коде, поэтому и попросила мне это разжевать |
|
21.06.2019, 14:49 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,724
|
Причем тут код и язык. Я вам опять предлагаю взять ручку и листок, написать слово и пальцем по буквам проверить на палиндром.
Записать сначала в простейшем варианте алгоритм: типа беру первую букву и сравниваю с последней, беру вторую и ... Потом делаете второй шаг и заменяете в полученном алгоритме обыденные слова на более алгоритмические - не первая, а с индексом 0, не последняя - а с индексом размер строки-1 и т.д. Делаете следущий шаг - понимаете, что делаете одно и тоже, и это цикл. Так и пишите ПОВТОРЯТЬ ДЛЯ или ПОВТОРЯТЬ ПОКА. Заметьте это без каких-либо знаний языка делается... |
21.06.2019, 15:11 | #9 | |
Новичок
Пользователь
Регистрация: 21.06.2019
Сообщений: 10
|
Цитата:
Про деление на два я теперь тоже поняла. А s[s.size() - i - 1] что конкретно обозначает? Можете, пожалуйста, объяснить? Последний раз редактировалось lucykekson; 21.06.2019 в 15:13. |
|
21.06.2019, 15:17 | #10 | |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Цитата:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу понять алгоритм решения задачи. | Антон18 | Паскаль, Turbo Pascal, PascalABC.NET | 21 | 03.08.2016 05:17 |
Паскаль: Помогите понять основу для написания простейшей программы. Не могу понять суть. | romanya | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 18.03.2016 20:35 |
Помогите понять логику программы (Pascal) | WeaKill47 | Помощь студентам | 0 | 06.10.2014 16:11 |
Не могу понять женскую логику | Smitt&Wesson | Свободное общение | 160 | 16.06.2014 09:07 |
как понять алгоритм и среду решения для скачивания файлов | genhoo | Помощь студентам | 4 | 05.05.2011 15:19 |