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

Рунные слова

23.03.2022, 13:29. Показов 1420. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

Руны — это древние магические знаки, которые наши предки использовали как буквы. Говорят, что рунные знаки обладают магическими свойствами, а при сложении рун в слова их магическая сила многократно возрастает. Если кузнец изготовит доспехи и начертит там определенные руны в определенном порядке, то доспехи будут наделены необычайными магическими силами.
Для того, чтобы стать обладателем таких доспехов достаточно просто принести кузнецу начертания этих рунных знаков. А вот, чтобы стать обладателем рунного знака приходилось немало потрудиться. Воины добывали начертания рун других языков и наречий в боях или получали их в качестве наград в благодарность за оказанные услуги.
Но так или иначе и в этом деле развелись жулики. По подозрениям ученых кузнец Игнатус Мошеникус изготавливал благородным воинам фальшивые рунные слова. Из древних преданий ученым стало достоверно известно, что каждая руна записывается из двух, трех или четырех английских букв. Причем первая буква рунного слова всегда записывается как заглавная, а все остальные являются маленькими. Ученые перевели несколько, выкованных этим кузнецом, рунных слов на английский язык и теперь нуждаются в Вашей помощи. Проверьте, является ли приведенное слово рунным.
Входные данные
В единственной строке содержится слово. Оно представляет собой непустую строку, длиной не более 100000 символов, содержащую только большие и маленькие буквы английского алфавита.
Выходные данные
Выведите «Yes», если слово является рунным и «No» в противном случае.
Пример
№ INPUT.TXT OUTPUT.TXT
1 IoIsTheBest Yes
2 IoItIsWaste No
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2022, 13:29
Ответы с готовыми решениями:

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

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

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

15
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.03.2022, 14:20
Python
1
2
3
4
5
6
import re
words = ['IoIsTheBest', 'IoItIsWaste']
 
for _ in words:
    if re.findall('[a-z]{4,}', _) == []: print(_, 'норм')
    else: print(_, 'подделка')
0
1 / 1 / 0
Регистрация: 17.01.2022
Сообщений: 41
23.03.2022, 15:35  [ТС]
Wrong answer-Неправильный ответ
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.03.2022, 15:46
Цитата Сообщение от GHGEJGK Посмотреть сообщение
Wrong answer-Неправильный ответ
Мсье, извольте:
https://www.online-python.com/HWUs4ytuPg
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
23.03.2022, 15:50
Пифагор,

Python
1
words = ['aaa', 'aa', 'AAA', 'a', 'AA']
это не норм
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.03.2022, 16:57
Ну, вроде б поиски "Святого Грааля" завершились успешно хотя хз, может еще какие варианты группировки есть. В общем, налетай:
Python
1
2
3
4
5
6
7
8
import re
words = ['IoIsTheBest', 'IoItIsWaste', 'aaa', 'aa', 'AlAltAfff', 'a', 'AA']
 
for _ in words:
    res = re.findall('[A-Z]{1}[a-z]{1,3}', _)
    if res != [] and len(_) == len(str(''.join(res))):
        print(_, 'норм')
    else: print(_, 'подделка')
Добавлено через 25 секунд
https://www.online-python.com/GRvirSJbHo

Добавлено через 51 секунду
eaa, жду комментариев
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
23.03.2022, 17:05
Пифагор, да вроде норм..)
только {1} в регулярке не нужно и в re есть fullmatch.
надо вызывать специалиста по регуляркам iSmokeJC
1
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.03.2022, 17:13
Немного сократил, убрал 1е условие, оно не нужно:
Python
1
2
3
4
5
6
# код
# -------------
if len(_) == len(str(''.join(res))):
        print(_, 'норм')
    else:
        print(_, 'подделка')
Добавлено через 1 минуту
Цитата Сообщение от eaa Посмотреть сообщение
надо вызывать специалиста по регуляркам iSmokeJC
eaa, ну, найдет тему - наверняка напишет как надо, шоб красиво

Добавлено через 5 минут
Цитата Сообщение от eaa Посмотреть сообщение
только {1} в регулярке не нужно
eaa, если я верно понял предмет Вашего указания, то отвечаю: это не подстановка переменных, как в формате, это квантификатор
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.03.2022, 17:16
Цитата Сообщение от Пифагор Посмотреть сообщение
это квантификатор
Именно так. Только какой смысл в квантификаторе на 1 повтор?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.03.2022, 17:18
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Только какой смысл в квантификаторе на 1 повтор?
Только что сам это понял Ну, мало опыта в re, мало...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.03.2022, 17:18
На коленке
Python
1
fullmatch(r'([A-Z][a-z]{1,3})+$', s)
2
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
23.03.2022, 17:20
Python
1
2
3
4
5
import re
if re.fullmatch(r'^([A-Z][a-z]{1,3})+$', input()):
    print('Yes')
else:
    print('No')
Цитата Сообщение от Пифагор Посмотреть сообщение
это не подстановка переменных, как в формате, это квантификатор
да я то в курсе))
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.03.2022, 17:21
eaa, границы строки не нужны при fullmatch. Я сам-то непонятно зачем поставил
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
23.03.2022, 17:25
iSmokeJC, я с другого языка копировал, там нужно было. Спасибо, маг регулярок
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
23.03.2022, 22:30
Ежели без регулярок, то так можно:

Python
1
2
3
4
5
import string
s = input('-> ')
lis = [ i for i in range( len(s) ) if s[i].isupper() ] + [len(s)]
lens = set( [ lis[i+1]-lis[i] for i in range( len(lis)-1 ) ] )
[ print('Yes') if lens and lens <= set( [2,3,4] ) and set(s) <= set( string.ascii_letters ) else print('No') ]
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
24.03.2022, 08:11
Ну или так лучше:

Python
1
2
3
4
s = input('-> ')
lis = [ i for i in range( len(s) ) if s[i].isupper() ] + [len(s)]
lens = set( [ lis[i+1]-lis[i] for i in range( len(lis)-1 ) ] )
[ print('Yes') if lens and lens <= set( [2,3,4] ) else print('No') ]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2022, 08:11
Помогаю со студенческими работами здесь

Напечатать все слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву
1) Программа. Дан текстиз строчных русских букв, закоторым следует точка. Напечатать этот текст заглавными русскими буквами. 2)...

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

В исходной строке а$ определить все слова, отличные от последнего слова. Вывести эти слова в столбик
Помогите решить: В исходной строке а$ определить все слова, отличные от последнего слова. Вывести эти слова в столбик. Отблагодарю.

Удалить слова, которые содержат все буквы заданного слова, и продублировать остальные слова
Разделитель — один из символов « ,.;:!?&quot;'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя....

Вывести слова, отличные от последнего слова, предварительно удалив из каждого слова первую букву
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru