Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 27.08.2020
Сообщений: 7

Преобразования слов

27.08.2020, 15:57. Показов 6293. Ответов 28

Студворк — интернет-сервис помощи студентам
Добрый день, нужна ваша помощь!
Нужно решить, задачку с данными условиями:

Ограничение времени, с 1
Ограничение памяти, МБ 64
Общее число попыток отправки 15

На вход подается 2 строки. Нужно определить, можно ли превратить первую строку во вторую, заменяя одни буквы на другие, с учетом следующих правил:

- участвуют только буквы русского алфавита а-я;
- все буквы в нижнем регистре;
- за один шаг можно преобразовать все вхождения одной буквы в другую.

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

Выходные данные
В качестве ответа в стандартный вывод программа должна выводить 1 (если превратить можно) или 0 (если превратить нельзя).

Пример 1
Входные данные: привет прикол
Выходные данные: 1
Преобразования (выводить не нужно):
в ⇒ к (прикет)
е ⇒ о (прикот)
т ⇒ л (прикол)

Пример 2
Входные данные: ааббдд ддббаа
Выходные данные: 1
Преобразования (выводить не нужно):
д ⇒ я (ааббяя)
а ⇒ д (ддббяя)
я ⇒ а (ддббаа)

Пример 3
Входные данные: абаб ааах
Выходные данные: 0
Преобразовать нельзя, так как 'б' не сможет оказаться одновременно 'а' и 'х'.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2020, 15:57
Ответы с готовыми решениями:

Преобразования слов
Здравствуйте. Недавно на почту прилетело письмо с одного известного сайта с предложением пройти мини тест по программированию. Я вообще...

Преобразования слов
Добрый день, нужна ваша помощь! Нужно решить, задачку с данными условиями: Ограничение времени, с 1 Ограничение памяти, МБ 64 ...

Определить предикат для преобразования списка цифр в список соответствующих слов
Определите предикат translate(?List1,?List2) для преобразования списка цифр (в дан-ном случае цифра – это целое число от 0 до 9) в список...

28
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.08.2020, 16:22
Python
1
2
3
4
from collections import Counter
s1, s2 = input().split()
ans = sorted(Counter(s1).values()) == sorted(Counter(s2).values())
print(int(ans))
0
0 / 0 / 0
Регистрация: 27.08.2020
Сообщений: 7
27.08.2020, 16:36  [ТС]
Спасибо большое за решение, но к сожалению, оно не проходит проверку(
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
27.08.2020, 19:14
eaa, Вы не учитываете возможность замены части букв в первом слове в буквы, которые уже есть в этом слове, например:
'abcd'->'aaaa'
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.08.2020, 19:42
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
d = {}
s, t = input().split()
if len(s) != len(t):
    print(0)
else:
    for k, v in zip(s, t):
        if k not in d:
            d[k] = v
        else:
            if d[k] != v:
                print(0)
                break
    else:
        print(1)
если и со второго раза не понял задачу. извиняйте))
2
0 / 0 / 0
Регистрация: 27.08.2020
Сообщений: 7
27.08.2020, 19:51  [ТС]
Эх, этот вариант тоже не подходит(
Спасибо за попытку помочь!
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.08.2020, 20:07
На каких тестах не проходит?
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
27.08.2020, 20:11
Кажется такое отображение называется сюръекция...
Возможно надо учесть случай, если в строке использованы все буквы алфавита, например: 'абв...эюя' ->'ябв...эюа'
то ответ должен быть 0, т.к. нельзя использовать никакую 'временную' букву (как букву я во втором примере).
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.08.2020, 20:18
u235, ну если так то второй вариант решения доработать пару строк и должно пройти.
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
27.08.2020, 20:21
eaa, да, добавить проверку на длину словаря..
больше пока что ничего на ум не приходит из-за чего может не проходить тест.
0
0 / 0 / 0
Регистрация: 27.08.2020
Сообщений: 7
27.08.2020, 20:22  [ТС]
eaa,
К сожалению этапы тестирования от меня скрыты и мне приходит лишь финальный результат о том, что ответ не подходит.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.08.2020, 20:24
Добавьте проверку как указал u235
0
0 / 0 / 0
Регистрация: 27.08.2020
Сообщений: 7
27.08.2020, 20:25  [ТС]
eaa, Хорошо, сейчас попробуем
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.08.2020, 20:27
Цитата Сообщение от eaa Посмотреть сообщение
На каких тестах не проходит?
Где длины слов разные
Цитата Сообщение от Bibo Посмотреть сообщение
Ваше решение должно учитывать вариант, когда на вход поданы строки разной длины.
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
27.08.2020, 20:31
Рыжий Лис, если длины слов разные, значит ответ -0. Или я чего-то упускаю из виду?
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.08.2020, 20:35
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from itertools import zip_longest
 
def f(a, b):
    assert len(a) <= len(b)
    d = {}
    for i, v in enumerate(a):
        if v not in d:
            d[v] = b[i]
            continue
        if d[v] == b[i]:
            continue
        return False
    return True
 
print(f(*'привет прикол'.split()))
print(f(*'ааббдд ддббаа'.split()))
print(f(*'абаб ааах'.split()))
Добавлено через 1 минуту
Цитата Сообщение от u235 Посмотреть сообщение
значит ответ -0.
Ок, я ошибался
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.08.2020, 20:37
Может в обе стороны нужно проверить?
s -> t и t -> s
0
0 / 0 / 0
Регистрация: 27.08.2020
Сообщений: 7
27.08.2020, 20:37  [ТС]
Рыжий Лис, Ваш вариант не подходит и версия с проверкой длины словаря, не сработала.
Какая-то, заковыристая задачка....Может проще с ней справится, через JS? Там я тему тоже создал, но люди молчат(
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
27.08.2020, 20:40
eaa, думаю нет, в условии однозначно сказано, что из первого слова сделать второе заменами..
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.08.2020, 20:41
s = t ответ 1. Потом нужно длину словаря проверять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.08.2020, 20:41
Помогаю со студенческими работами здесь

Используйте метод map() или forEach() для преобразования слов в числа
Задан массив вида arr = . Используйте метод map() или forEach() для преобразования слов в числа, а затем метод reduce(), чтобы вычислить...

Составить программу обработки и преобразования двумерного массива. предусмотреть ввод преобразования матрицы
Из матрицы А(m,n) (m&lt;=5, n&lt;6) получить числа a1,....,am, где а1- значение первого по порядку положительного элемента i-й строки.

Интерфейс для обратного преобразования после преобразования IConvertible
Реализовал IConvertible в классе, преобразовывает только в string и double. Convert.ToDouble(obj); работает. Теперь чтобы все было по...

Даны два линейных преобразования, найдите матрицу преобразования, выражающего вектор z через вектор x
Даны два линейных преобразования: Найдите матрицу преобразования, выражающего вектор z через вектор x.

3D преобразования фигуры. афинные преобразования
добрый день. если полностью - моя задача состоит в организации 3D афинных преобразований многогранной фигуры в координатном пространстве...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru