Есть ответ 👍

Камiнь-Ножицi-Папiр (C++, Java, C#, Pascal, Python) Зеник i Марiчка вирiшили зiграти n разiв у вiдому гру Камiнь-Ножицi-Папiр. Гра вiдбуваєтьсяв декiлька раундiв. У кожному раундi кожен iз учасникiв одночасно обирає один iз трьохпредметiв: камiнь, ножицi або папiр. Результат раунду ґрунтується на предметах, обранихсуперниками: камiнь перемагає ножицi, ножицi перемагають папiр, а папiр перемагає камiнь. Звернуть увагу, що в деякому раундi гравцi можуть обрати один i той же предмет. В такому випадку результатом раунду є нiчия. Марiчка знає, в скiлькох раундах вона обере камiнь, ножицi i папiр, таку ж iнформацiю вона має про Зеника. Марiчка хоче дiзнатися скiльки максимально раундiв вона може виграти.До ть їй дiзнатися це. Вхiднi данi RM, SM, PM кiлькiсть раундiв, у яких Марiчка поставить камiнь, ножицi i папiр, вiдповiдно.RZ, SZ, PZ кiлькiсть раундiв, у яких Зеник поставить камiнь, ножицi i папiр, вiдповiдно. Вихiднi данi Виведiть єдине число максимальна кiлькiсть раундiв, у яких може перемогти Марiчка. Обмеження 0≤RM, SM, PM≤103.0≤RZ, SZ, PZ≤103.RM+SM+PM=RZ+SZ+PZ=n1≤n≤103
Приклади
Вхiднi данi (stdin) 1 1 11 1 1
Вихiднi данi (stdout) 3
Примiтки
У прикладi кожен iз гравцiв обере кожен iз предметiв по одному разу. Марiчка може вигратиусi три раунди у випадку, якщо на Зениковi ножицi вона обере камiнь, на камiнь обере папiр, ана папiр обере ножицi.

114
377
Посмотреть ответы 2

Ответы на вопрос:


Объяснение:

Создадим тестовый скрипт:

1

#!/usr/bin/env python

2

3

4

def duplicate_encode(word):

5

6

iter = str(word)

7

print(iter)

8

9

duplicate_encode('test')

Запускаем, проверяем:

./duplicate_encode.py

test

Re-playCopy to ClipboardPauseFull View

ОК, теперь можно придумывать решение.

Решение не претендует на оригинальность и уж тем более на идеальность или красоту подхода, но раз кодить на Python приходиться редко — то хотя бы такая разминка для мозгов.

На каком-то собеседовании я встречал похожую задачу, идея решения достаточно простая:

создаём пустой список

запускаем цикл, в котором проверяем каждый элемент переданного в аргументе функции слова

каждый элемент проверяем с циклом: если элемента в списке нет — ставим «(«, если есть — ставим «)»

ОК, пробуем:

01

#!/usr/bin/env python

02

03

def duplicate_encode(word):

04

05

# will conatin word from function's argument

06

iter_word = str(word)

07

# will container already checked items to compare with

08

check_list = []

09

# will contain brackets

10

formatted_list = []

11

12

print('Checking word: {}'.format(iter_word))

13

14

for i in iter_word:

15

print('Checking item: {}'.format(i))

16

if i not in check_list:

17

print('{} not found in the list[], so using ")" symbol'.format(i))

18

check_list.append(i)

19

i = '('

20

formatted_list.append(i)

21

else:

22

print('{} found in the list[], so using "(" symbol'.format(i))

23

check_list.append(i)

24

i = ')'

25

formatted_list.append(i)

26

27

print('Result: {}'.format(''.join(map(str, formatted_list

28

29

duplicate_encode('test')

Рассмотрим код построчно:

iter_word = str(word) — приводим input к типу str, сохраняем в переменную iter_word

check_list = [] — создаём пустой список, в который будем сохранять элементы, которые уже проверены и которым будем сверяться дальше в цикле

formatted_list = [] — пустой сисок, который будет содержать символы «(» и «)»

for i in iter_word: — запускаем цикл и проверяем каждый элемент из переменной iter_word

if i not in check_list — в самом начале список check_list у нас пустой, дальше на каждой итерации ищем в нём очередной элемент i

check_list.append(i) — независимо от результата — добавляем уже проверенный элемент в список check_list

i = '(' — раз i не найден в списке check_list — то сохраняем его в formatted_list как «(«

else: i = ')' — если i найден в списке, то сохраняем его в formatted_list как «)»

print('Result: {}'.format(''.join(map(str, formatted_list — и в конце выводим получившийся список formatted_list в виде обычного слова

Проверяем:

./duplicate_encode.py

Checking word: test

Checking item: t

t not found in the list[], so using ")" symbol

Checking item: e

e not found in the list[], so using ")" symbol

Checking item: s

s not found in the list[], so using ")" symbol

Checking item: t

t found in the list[], so using "(" symbol

Result: )))(

Re-playCopy to ClipboardPauseFull View

ОК — работает.

Но вернёмся к задаче.

Во-первых: «Ignore capitalization when determining if a character is a duplicate» — ОК, добавим строковый метод lower():

1

...

2

for i in iter_word.lower():

3

...

4

duplicate_encode('Test')

Проверяем:

./duplicate_encode.py

Checking word: Test

Checking item: t

t not found in the list[], so using ")" symbol

Checking item: e

e not found in the list[], so using ")" symbol

Checking item: s

s not found in the list[], so using ")" symbol

Checking item: t

t found in the list[], so using "(" symbol

Result: )))(

Re-playCopy to ClipboardPauseFull View

Но тесты в Codewars снова вернут ошибку:

silva78
4,8(50 оценок)

204*204 = 4*51*4*51 =51^2*2^4                   2551≈2^11 4 кбайт = 4*2^(13) бит 4*2^(13) : (51^2  *  2^4) =2^11:   51^2 =2^11 : 2551 =2^11 : 2^11= 2^1 1 бит для цвета, то есть только два цвета, чёрно-белое изображение.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS