leetcode 820. Short Encoding of Words
原题地址:https://leetcode.com/problems/short-encoding-of-words/
题目
Given a list of words, we may encode it by writing a reference string S and a list of indexes A.
For example, if the list of words is [“time”, “me”, “bell”], we can write it as S = “time#bell#” and indexes = [0, 2, 5].
Then for each index, we will recover the word by reading from the reference string from that index until we reach a “#” character.
What is the length of the shortest reference string S possible that encodes the given words?
Example:
Input: words = ["time", "me", "bell"]
Output: 10
Explanation: S = "time#bell#" and indexes = [0, 2, 5].
Note:
- 1 <= words.length <= 2000.
- 1 <= words[i].length <= 7.
- Each word has only lowercase letters.
python代码
class Solution:
def minimumLengthEncoding(self, words):
"""
:type words: List[str]
:rtype: int
"""
set_word = set(words)
for word in words:
for i in range(1, len(word)):
print(word[len(word)-i:])
if word[len(word)-i:] in set_word:
set_word.remove(word[len(word)-i:])
# print(set_word)
return sum(len(word) + 1 for word in set_word)
版权声明:转载注明 http://blog.csdn.net/birdreamer/article/details/80041100