#python #break #word
#питон #перерыв #слово
Вопрос:
Постановка задачи: Учитывая строку s и словарь строк wordDict, верните значение true, если s можно разделить на разделенную пробелами последовательность из одного или нескольких словарных слов.
Обратите внимание, что одно и то же слово в словаре может быть повторно использовано несколько раз при сегментации.
Обратите внимание, что вам разрешено повторно использовать слово из словаря. Пример 1:
Ввод: s = «leetcode», wordDict = [«leet»,»код»] Вывод: истина Объяснение: Возвращает истину, потому что «leetcode» может быть сегментирован как «код leet».
Пример 2:
Ввод: s = «кошачий пес», wordDict = [«кошки»,»собака»,»песок»,»и»,»кошка»] Вывод: ложь
Решение:
class Solution: def wordBreak(self, s: str, wordDict: List[str], memo={}) -gt; bool: if s == '': return True if s in memo: return memo[s] for word in wordDict: if s[0:len(word)] == word: suffix = s[len(word):] isSuffixPossible = self.wordBreak(suffix, wordDict, memo) if isSuffixPossible : memo[s] = True return True memo[s] = False return False