0 / 0 / 0
Регистрация: 20.09.2023
Сообщений: 6

Задача "Составь строку"

20.09.2023, 10:29. Показов 588. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В этой задаче вам требуется составить строку из заглавных английских букв следующим образом.

Первая буква строки должна быть A . После этого строка должна содержать один или несколько блоков букв. Каждая из следующих a1 букв первого блока должна идти в алфавите позже, чем предыдущая, каждая из следующих a2 букв второго блока должна быть раньше в алфавите, чем предыдущая буква в строке, для следующего блока номер буквы в алфавите опять должен возрастать, потом убывать и т.д. Обратите внимание, что и для первой буквы каждого блока правило по отношению к предыдущей букве в строке должно выполняться.

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

Например, если a1=2
а a2=3
, строка должна иметь ровно 1+a1+a2=1+2+3=6
букв (1 — это начальная буква A). Строка AYZYBA в данном случае подходит, но строка ABDCBA также подходит и является первой по алфавиту из подходящих строк.

По известным размерам блоков выведите подходящую строку, которая идет первой в алфавитном порядке в списке всех подходящих строк.

Входные данные
Первая строка входных данных содержит одно целое число N — количество блоков. Вторая строка содержит N (1≤N≤10) целых чисел a1,a2,…,aN (1≤ai≤25) — количество букв в каждом блоке по порядку. Гарантируется, что для всех входных данных существует по крайней мере одна допустимая строка.

Выходные данные
Выведите первую в алфавитном порядке подходящую строку.

Примечание
Как минимум в 40% тестах 1≤N≤2.

Примеры
входные данные
2
2 3
выходные данные
ABDCBA
входные данные
2
5 1
выходные данные
ABCDEFA
входные данные
1
3
выходные данные
ABCD
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2023, 10:29
Ответы с готовыми решениями:

Составь полноценную програму
if x<-1 then y:=1/(x*x) else if (-1<=x)and(x<2) then y:=x*x else y:=4; writeln('Y = ',y:0:2);ВОТ КОД

составь блок-схему
помогите плиз составить по этому коду блок-схему var a:array of integer; x,str1,str2,i,j,strok,stolbcov:integer; begin ...

Составь код по данной задачи
Всем привет! Кто мог бы помочь составить код для этих двух задач на языке C#? Ссылки на скрины этих двух задач прикрепил. Ссылки на...

2
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
24.09.2023, 14:55
Примерно так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def generate_string(N, blocks):
    result = "A"
    current_letter = ord("A")
    for i in range(N):
        block_size = blocks[i]
        if block_size % 2 == 1:
            for j in range(block_size):
                current_letter += 1
                result += chr(current_letter)
        else:
            for j in range(block_size):
                current_letter -= 1
                result += chr(current_letter)
    return result
N = 2
blocks = [2, 3]
print(generate_string(N, blocks))
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.09.2023, 19:53
В этот же день эта же задача была опубликована.
Мое решение там такое:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def next_let(let):
    return chr(ord(let) + 1)
 
def add_block(res, le, go_up):
    if go_up:
        for i in range(le):
            res.append(next_let(res[-1]))
    else:
        res.append('A')
        add_block(res, le - 1, not go_up)
        res = res[:-le] + list(reversed(res[-le:]))
        if res[-le - 1] <= res[-le]:
            res[-le - 1] = next_let(res[-le])
    return res
 
n = int(input('n = '))
res = []
res.append('A')
lens = list(map(int, input('->').split()))
go_up = True
 
for le in lens:
    res = add_block(res, le, go_up)
    go_up = not go_up
print(''.join(res))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.09.2023, 19:53
Помогаю со студенческими работами здесь

Составь блок-схему по программе
Кто-нибудь помогите!!! Вот исходная программа Program zavod; const nmax = 20; var x, y: array of integer; n, i:...

Составь слово из букв других слов
Составить слово, которое получится, если из введенных слов брать с конца букву с номером строки, в которой оно введено (из первой строки...

Дан масив M(n,n) Составь новый двухмерный массив B(n,2)
4. Дан масив M(n,n) Составь новый двухмерный массив B(n,2) в первый столбец которого записать диагональный элемент строоки, если он меньше...

Составь и выведи массив, состоящий из всех данных чисел, равных минимальному и максимальному значениям
Есть число N и N строк с целыми числами. Составь и выведи массив, состоящий из всех данных чисел, равных минимальному и максимальному...

Составь новый двухмерный массив B(n,2) в первый столбец которого записать диагональный элемент строоки
4. Дан масив M(n,n) Составь новый двухмерный массив B(n,2) в первый столбец которого записать диагональный элемент строоки, если он меньше...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru