М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
mog69
mog69
13.01.2023 17:28 •  Информатика

Сделайте логические операции

👇
Открыть все ответы
Ответ:
L00KING
L00KING
13.01.2023
Ақпарат ұғымы күнделікті өмірден бастап техникалық салада пайдаланылатын көп мағыналы ұғым. Жалпы алғанда бұл ұғым шектеу, байланыс, бақылау, форма, инструкция, білiм, мағына, құрылым, бейнелеу, сезіну тағы басқа ұғымдармен тығыз байланысты. Көп адам бұл жайлы Білім дәуірі немесе білім қоғамы тудырған Ақпарат дәуірі туралы айта бастады; ақпараттық қоғам, ақпараттық технологиялар, тіпті информатика, ақпарат ғылымы және компьютер ғылымы назарға көп түсуде, ал “ақпарат” сөзі білдіре бастаған мағыналары ұқыпсыз пайдаланылуда
4,7(51 оценок)
Ответ:
qwertyytrewq0192
qwertyytrewq0192
13.01.2023

Объяснение:

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

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 снова вернут ошибку:

4,5(24 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ