Programming Taskbook


E-mail:

Пароль:

Регистрация пользователя   Восстановление пароля

 

ЮФУ SMBU

Электронный задачник по программированию

©  М. Э. Абрамян (Южный федеральный университет, Университет МГУ-ППИ в Шэньчжэне), 1998–2024

 

PT for STL | Группы заданий | STL4Str

PrevNext


Строки как последовательные контейнеры

Во всех заданиях данной группы требуется обработать строку, рассматривая ее как последовательный контейнер и используя конструкторы класса string, его функции-члены insert и erase и/или подходящие обобщенные алгоритмы. Вспомогательные строки при решении задач не использовать.

STL4Str1°. Дано целое положительное число N и символ C. Используя конструктор класса string, заполнить строку S, записав в нее N копий символа C.

STL4Str2°. Дана строка S0 четной длины. Используя конструктор класса string с параметрами-итераторами, записать в строку S вторую половину символов строки S0 в обратном порядке.

STL4Str3°. Дана строка S четной длины N (N ≥ 4). Дважды используя подходящий обобщенный алгоритм, поменять местами первый и последний символ, а также два средних символа строки S.

STL4Str4°. Дано целое число K (> 0) и строка S четной длины. Используя один вызов функции-члена insert с параметром-итератором, добавить в середину строки S K символов «*».

STL4Str5°. Дано целое число K (> 0) и строка S, длина которой больше K. Используя один вызов функции-члена insert с параметрами-итераторами, добавить в конец строки S ее первые K символов в обратном порядке.

STL4Str6°. Дано целое число K (> 0) и строки S1 и S2. Строка S1 содержит не менее K символов, а строка S2 — не менее двух символов. Используя два вызова функции-члена insert с параметрами-итераторами, преобразовать строку S2, вставив после ее первого символа первые K символов строки S1 в исходном порядке, а перед ее последним символом — последние K символов строки S1 в обратном порядке.

STL4Str7°. Дана строка S. Используя функцию-член insert в цикле с параметром-итератором, вставить перед каждым символом строки S символ «*».

STL4Str8°. Дана строка S, содержащая не менее двух символов. Используя функцию-член insert в цикле с параметром-итератором, вставить после каждого символа строки S с четным порядковым номером три символа «*» (например, строка «abcde» должна быть преобразована в «ab***cd***e»).

STL4Str9°. Дана строка S четной длины. Используя функцию-член insert в цикле с параметром-итератором, продублировать каждый символ из первой половины строки S (например, строка «abcdef» должна быть преобразована в «aabbccdef»).

STL4Str10°. Дана строка S нечетной длины N (N ≥ 5). Используя один вызов функции-члена erase с параметрами-итераторами, удалить три средних символа строки.

STL4Str11°. Дана строка S, содержащая не менее трех символов. Используя функцию-член erase в цикле с параметром-итератором, удалить каждый третий символ строки S.

STL4Str12°. Дана строка S, содержащая не менее трех символов. Используя подходящий обобщенный алгоритм в цикле, переместить каждый третий символ строки S в ее конец, располагая перемещенные символы в исходном порядке.

STL4Str13°. Дана строка S, длина которой делится на 3. Используя подходящий обобщенный алгоритм, переместить вторую треть символов строки S в ее конец (с сохранением порядка символов).

STL4Str14°. Дана строка S, содержащая не менее трех символов «*». Используя три вызова подходящего обобщенного алгоритма и два вызова функции-члена erase, удалить в строке S второй и последний из этих символов.

STL4Str15°. Дана строка S. Используя два вызова подходящего обобщенного алгоритма и один вызов функции-члена erase, удалить все символы, расположенные в строке S между первой и последней цифрой. Если цифр меньше двух, то строку не изменять.

STL4Str16°. Дана строка S четной длины. Используя в цикле подходящий обобщенный алгоритм и функцию-член erase, удалить во второй половине строки S все символы, совпадающие с символами из ее первой половины.

STL4Str17°. Дана строка S. Используя подходящий обобщенный алгоритм и функцию-член erase, удалить все соседние цифровые и буквенные символы, оставив в каждом наборе подряд идущих цифр или букв только начальный символ. Например, строка «123abc456de» должна быть преобразована к виду «1a4d». Считать, что строка S содержит только латинские буквенные символы.

STL4Str18°. Дано целое число K (> 0) и строка S, длина которой превосходит число K. Используя подходящий обобщенный алгоритм и функцию-член insert, продублировать в строке S первую из подстрок, содержащих K подряд расположенных цифр. Если подстрока содержит более K цифр, то продублировать K начальных цифр этой подстроки. Если требуемых подстрок нет, то строку не изменять.

STL4Str19°. Даны строки S1 и S2, длина строки S1 не превосходит длины строки S2. Используя подходящий обобщенный алгоритм и функцию-член erase, удалить в строке S2 последнюю подстроку, совпадающую с инвертированной строкой S1 (строку S1 не изменять). Если требуемых подстрок нет, то строку S2 не изменять.

STL4Str20°. Дано число N (1 ≤ N ≤ 26) и строка S. Используя два вызова подходящего обобщенного алгоритма с итератором вставки, добавить в начало и в конец строки S по N первых заглавных букв латинского алфавита, расположив эти буквы в конце строки по алфавиту, а в начале — в порядке, обратном алфавитному. Например, при N = 3 и S = «567» требуется получить строку «CBA567ABC».

STL4Str21°. Дано целое число K (> 0) и строка S четной длины, большей 2K. Используя два вызова подходящего обобщенного алгоритма, выполнить в первой половине строки S циклический сдвиг символов на К позиций влево, а в ее второй половине — циклический сдвиг символов на K позиций вправо.

STL4Str22°. Дана строка S четной длины. Используя два вызова подходящего обобщенного алгоритма, заменить в первой половине строки S все цифровые символы на символ «*», а в ее второй половине — все заглавные латинские буквы на символ «_».

STL4Str23°. Дана строка S. Используя один вызов подходящего обобщенного алгоритма, изменить регистр всех буквенных символов строки S на противоположный, а цифровые символы заменить на символ «*».

STL4Str24°. Даны строки S1 и S2 одинаковой длины. Используя подходящий обобщенный алгоритм, преобразовать строку S2, заменив на символ «*» те ее символы, которые не совпадают с символами строки S1, расположенными в тех же позициях. Например, в случае S1 = «ab2CD» и S2 = «as2Cd» строка S2 должна быть преобразована к виду «a*2C*».

STL4Str25°. Дана строка S. Используя подходящий обобщенный алгоритм, скопировать в конец строки S все содержащиеся в ней цифровые символы в том же порядке.

STL4Str26°. Дана строка S. Используя подходящий обобщенный алгоритм и функцию-член erase, удалить в строке S все цифровые символы.

STL4Str27°. Дана строка S. Используя подходящий обобщенный алгоритм, перегруппировать элементы строки S, переместив все цифровые символы в ее начало в том же порядке.

STL4Str28°. Дана строка S четной длины. Используя два вызова подходящего обобщенного алгоритма, отсортировать первую половину строки S по убыванию кодов символов, а вторую — по их возрастанию.


PrevNext

 

Рейтинг@Mail.ru

Разработка сайта:
М. Э. Абрамян, В. Н. Брагилевский

Последнее обновление:
01.01.2024