Временная сложность этого решения составляет O(n*m*k)
- где:
n
- длина строки s
. m
- число слова в wordDict
. k
- это средняя длина слова в wordDict
.
Пояснения, вы повторяете n
раз, для каждого проверяемого каждого слово в wordDict
(* m
всего), и для каждого такого повтора вы читаете все слово (длиной k
).
Сложность пространства равна O(n)
- ваш вспомогательный массив не зависит от количество слов в wordDict
или их длина, и нет дополнительного выделения места 1 в зависимости от словаря.
(1) Ну, я не уверен, как python реализует s[index:index+L]
, но в любом случае это не умножается на n
, и никогда не выделяется более одного раза за раз, и никогда не выделяется, если L > n
- так что это не влияет на сложность пространства в любом случае.