Top.Mail.Ru
Ответы

Помогите очень срочно либо на питоне либо на любом языке

решить задачу python

HAAARD
ограничение по времени на тест: 1 секунда ограничение по памяти на тест: 256 мегабайт
ввод: стандартный ввод вывод: стандартный вывод
Вам задается строка 5, состоящая из п заглавных латинских букв. Так как это тяжелая задача HAAARD, то вы хотите удалить из этой строки какие-то символы так, чтобы в конце осталось слово HARD с как можно большим количеством букв А подряд. Вы можете удалять буквы из любого места строки, но не можете менять оставшиеся буквы местами. (По сути вы можете взять любую подпоследовательность символов строки s).
Входные данные
В первой строке задается одно целое число n (1 ≤ 105) - длина строки 5.
Во второй строке задается строка 5, состоящая из п заглавных латинских букв.
Выходные данные
Выведите слово HARD с максимально возможным количеством букв А, которое может быть получено описанным способом. (HARD, HAARD, HAAARD и т.д.)
Если нельзя получить даже слово HARD с одной буквой А, то выведите вместо этого ЕАЅУ.
Примеры
входные данные
10
AHARAVARAD
выходные данные
HAAARD
входные данные
11
ITSNOTSOHRD
выходные данные
EASY
Примечание
В первом примере можно удалить буквы по такому принципу:
AHARAVARAD
-HA-A-AR-D

По дате
По рейтингу
Аватар пользователя
Профи

print("Hello, World!")

Аватар пользователя
Мыслитель

Задача уровня Easy, надеюсь? Решается менее, чем в 10 строчек кода, на любом языке, предоставляющем функции поиска по подстроке и подсчёта заданных символов в ней. Без копирования строк, один проход, линейная сложность по времени и константная - по памяти.

1234567
 _, s = map(input, ('',''))
h, d, a = s.find('H'), s.rfind('D'), 0
if h >= 0 and h + 2 < d:
    r = s.rfind('R', h + 1, d)
    if r >= 0:
        a = s.count('A', h + 1, r)
print(f"H{'A'*a}RD" if a else "EASY") 

Ищем 'H' с начала, а 'R' и 'D' - с конца, считаем кол-во букв 'A' между первой 'H' и последней 'R', предшествующей последней 'D'.
И главное - минимум кода на самом Питоне, почти всё делает библиотека, поэтому работать будет быстро.

P.S. И не забудь поставить дизлайки троллям и авторам неправильных ответов.

Аватар пользователя
Знаток

Думай)

Аватар пользователя
Мыслитель

У нейросети - просто тяга к решениям, где всё сделано максимально через задницу. И к тому же, как и у предыдущего олигофрена, этот тупой говнокод не выполняет условия задачи.

Аватар пользователя
Мыслитель

Так застеснялся решения от ИИ, что стёр его? Молодец, это хороший признак. Есть шанс на выздоровление. Сейчас вот у тебя истечёт таймаут на редактирование ответа, и я свой опубликую. Если кто-то другой не подсуетится раньше.

Аватар пользователя
Ученик

def solve():
n = int(input())
s = input()

h_index = -1
a_indices = []
r_index = -1
d_index = -1

for i in range(n):
if s[i] == 'H' and h_index == -1:
h_index = i
elif s[i] == 'A' and h_index != -1:
a_indices.append(i)
elif s[i] == 'R' and len(a_indices) > 0:
r_index = i
break

if h_index == -1 or len(a_indices) == 0 or r_index == -1:
print("EASY")
return

for i in range(n):
if s[i] == 'D' and r_index != -1 and i > r_index:
d_index = i
break


if d_index == -1:
print("EASY")
return


valid_a_indices = [i for i in a_indices if h_index < i < r_index]

if len(valid_a_indices) == 0:
print("EASY")
return


result = "H" + "A" * len(valid_a_indices) + "RD"
print(result)

solve()

Аватар пользователя
Ученик

не правильное значение

Аватар пользователя
Ученик

あなたは吸うつもりですか?



Видео по теме