Kamble Abhishek Ответов: 1

Как решить данную проблему с помощью языка программирования Python?


Вам дается строка camelcase и массив токенов. Вам нужно проверить, полностью ли строка состоит из этих токенов.

Входной Массив [‘Red’, ‘Blue’, ‘Green’ ]

Корпус 1 Вход “добавьте redgreen” выход правда корпус 2 Вход “redRedGreen” выход правда корпус 3 Вход “redPeopleGreen” выход "ложь" (люди не в данный массив) корпус 4 Вход “red1Green” выход "ложь" (Red1 не в данном массиве )

Программа на языке Python

Что я уже пробовал:

array=['Red','Blue','Green' ]

print(array[0]+array[2]) print(array[0]+array[0]+array[1])

if (array[0]+array[2]) and (array[0]+array[0]+array[1]): print(True)

else: print(False)

1 Ответов

Рейтинг:
1

CPallini

Подсказка: используйте camelcase fewature входной строки, чтобы разложить ее на список (суб-)строк, а затем итеративно попытайтесь сопоставить токены с каждым элементом списка.

[обновление]

Я даю вам пример кода в качестве стартера.
Следующий код строит список подстрок из входной строки 'redPeopleGreen'

import re
instr = 'redPeopleGreen'
sstr = instr[0].upper() + instr[1:] # this produces sstr = 'RedPeopleGreen'
pattern = re.compile(r'([A-Z][a-z]+)') # find all the substrings (words beginning with capital letter)
lst = re.findall(pattern, sstr)
print(lst)

Выход:
['Red', 'People', 'Green']

[/обновление]


Kamble Abhishek

Извини, я не смог до тебя дозвониться.

CPallini

Поиск заглавных букв во входной строке. Каждая подстрока, кроме первой, начинается с заглавной буквы. Таким образом, вы находите все подстроки и помещаете их в список. Затем попробуйте сопоставить каждое вычитание с предоставленными маркерами. Если есть несоответствие (то есть хотя бы одна из таких подстрок не совпадает с одним маркером), сообщите "false", в противном случае сообщите "true".

CPallini

Смотрите мое обновленное решение.

Kamble Abhishek

Сэр, что мне делать дальше, пожалуйста, направьте меня. Я ничего не понимаю.

CPallini

Это совсем не сложно: у вас есть список токенов и список подстрок.
Для каждой подстроки итеративно сравниваются все маркеры, пока не будет найдено совпадение. Если такое совпадение не найдено, то сообщите "ложь". С другой стороны, если внешний цикл ("для каждой подстроки") завершается, то сообщите "true".

Kamble Abhishek

Извините, сэр, но я не могу найти решение. Пожалуйста помочь.

CPallini

Извините, больше ничем не могу помочь. Вы не можете полностью выполнить свою домашнюю работу.

Kamble Abhishek

Хорошо, Спасибо, Сэр.

CPallini

Добро пожаловать.