В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
semchenko2005
semchenko2005
19.01.2021 09:07 •  Информатика

Миша готовится к ЕГЭ по информатике. Сейчас он изучает задачу A4, в которой описывается работа с масками файлов:

Для групповых операций с файлами используются маски имён файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которой также могут встречаться следующие символы.

Символ «?» (во знак) означает ровно один произвольный символ.

Символ «*» (звёздочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.

Поскольку открытого банка задач для ЕГЭ по информатике не существует, Мише приходится тренироваться самостоятельно. Напишите программу, которая для каждого имени файла определит, подходит ли оно под заданную маску, чтобы Миша мог сверить свои ответы. Гарантируется, что в маске файла присутствует не более одного символа «*».

Входные данные

В первой строке содержится маска файла. В следующих 5 строках содержатся имена файлов по одному в строке. Имена файлов состоят из маленьких латинских букв, цифр и символа «.» (точка), в маске также могут содержаться символы «?» и «*» (символ «*» — не более одного раза). Длина каждой строки не превосходит 20 символов.

Выходные данные

Для каждого имени файла выведите слово «YES», если оно удовлетворяет маске и «NO» иначе. Выводить слова следует большими латинскими буквами без кавычек, каждое в новой строке.Входные данные решить на с++ или python

Показать ответ
Ответ:
slavioglokolea77
slavioglokolea77
12.10.2020 03:05

На питоне

Объяснение:

s = input();

 

for p in range(5):

   a = input();

 

   n = 1;

   q = 0;

   i = 0;

   f = 1;

   while q < len(s) and i < len(a) and f and n:

       if s[q] == '?':

           i += 1;

           q += 1;

       elif s[q] == '*':

           n = 0;

       else:

           if s[q] != a[i]:

               f = 0;

                 

           i += 1;

           q += 1;

 

   if n == 0:

       for w in range(-1, -(len(s) - q), -1):

           if s[w] != a[w] and s[w] != '?':

               f = 0;

               break;

 

   if f == 0:

       print('NO');

   elif '*' not in s and len(a) != len(s):

       print('NO');

   else:

       if (len(s)>len(a)+1):

             print("NO");

       else:

             

             print('YES');

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота