Заменить в самом длинном слове строки буквы 'а' на 'б'
Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. В самом длинном слове заменить все буквы «а» на «б».
Алгоритм решения задачи:
- Пусть в переменных len хранится длина слова, max_w - длина самого длинного слова, id_w - индекс первого символа самого длинного слова, count - длина текущего слова.
- Будем перебирать в цикле все символы строки от начала (1) до конца (len - длина строки).
- Если рассматриваемый символ не пробел, то увеличим значение длины текущего слова (count).
- Если все же символ пробел, то сравним длину текущего слова (count) с длиной, записанной в max_w. Если count больше, то изменим значение max_w на значение count, а индекс начала слова (id_w) найдем вычтя из индекса текущего символа длину слова.
- Кроме того, если символ пробел, то надо обнулить значение count, т. к. начнется новое слово.
- Длина последнего слова не сравнивается с max_w, если строка не заканчивается пробелом. Поэтому после цикла надо еще раз сравнить значения count и max_w.
- Переберем все символы самого длинного слова от его начала (id_w) до его конца (id_w + max_w) и если встретится буква "а", то заменить ее на букву "б".
алг замена букв нач лит s цел i, len, max_w, id_w, count ввод s len := длин(s) max_w := 0 id_w := 0 count := 0 нц для i от 1 до len если s[i] <> ' ' то count := count + 1 иначе если count > max_w то max_w := count id_w := i - count все count := 0 все кц если count > max_w то max_w := count id_w := i - count все нц для i от id_w до id_w+max_w если s[i] = 'а' то s[i] := 'б' все кц вывод s кон
Пример выполнения кода:
привет тарелка нло привет тбрелкб нло