Рубрики
Без рубрики

Разрыв слов |. Леткод День 29.

Проблема – дана непустая строка S и словарь Worddict, содержащий список непустых слов … с меткой Python.

Проблема –

Учитывая непустую строку S и словарь Worddict, содержащий список непустых слов, определить, можно ли быть сегментировано в последовательность одинакового пространства одного или нескольких словаря.

Пример “” “Вход:, worddict = [” LET “,” код “] Выход: True Объяснение: Верните true, потому что «LeetCode» может быть семенсирован как «код лета».

“””

Решение –

Одной из возможных оптимизаций является то, что вместо итерации и проверки всех подстрок, мы знаем, какие подстроки ЛЕН присутствуют в словаре, и мы проверяем только те длины.

class Solution:
    def wordBreak(self, s: str, wordDict: List[str]) -> bool:
        dp = [False] * (len(s)+1)
        dp[0] = True
        d = set(wordDict)
        for i in range(len(s)):
            for word in wordDict:
                l = len(word)
                if i+1-l >= 0 and s[i+1-l:i+1] in d and dp[i+1-l]:
                    dp[i+1] = True
                    break
        return dp[-1]

Оригинал: “https://dev.to/skbhagat40/word-break-leetcode-day-29-4kdd”