給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。
例如,如果這個列表是 [「time」, 「me」, 「bell」],我們就可以將其表示為 s = 「time#bell#」 和 indexes = [0, 2, 5]。
對於每乙個索引,我們可以通過從字串 s 中索引的位置開始讀取字串,直到 「#」 結束,來恢復我們之前的單詞列表。
那麼成功對給定單詞列表進行編碼的最小字串長度是多少呢?
示例:
輸入: words = [「time」, 「me」, 「bell」]輸出: 10 說明: s = 「time#bell#」 ,
indexes = [0, 2, 5] 。
1 <= words.length <= 20001 <= words[i].length <= 7
每個單詞都是小寫字母 。
/**
* @param words
* @return
* 利用set去重;然後對每個元素切片,利用 set方法 查詢集合中有無切片的元素,有則刪除;計算最後剩餘的長度。
*/var
minimumlengthencoding
=function
(words)
} hashset.
foreach
(item => len += item.length +1)
return len
};
審題時注意:
刪除的只能是尾元素,不能是中間的元素
例如:time
刪除的只能是ime,或me, 或e
而不能是im
本菜雞剛開始就審 誤會 題目說明了
820 單詞的壓縮編碼
給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。例如,如果這個列表是 time me bell 我們就可以將其表示為 s time bell 和 indexes 0,2,5 對於每乙個索引,我們可以通過從字串 s 中索引的位置開始讀取字串,直到 結束,來恢復我們之前的單詞...
Leetcode 820 單詞的壓縮編碼
給定乙個單詞列表,我們將這個列表編碼成乙個索引字串s與乙個索引列表a。例如,如果這個列表是 time me bell 我們就可以將其表示為s time bell 和indexes 0,2,5 對於每乙個索引,我們可以通過從字串s中索引的位置開始讀取字串,直到 結束,來恢復我們之前的單詞列表。那麼成功...
LeetCode 820 單詞的壓縮編碼
給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。例如,如果這個列表是 time me bell 我們就可以將其表示為 s time bell 和 indexes 0,2,5 對於每乙個索引,我們可以通過從字串 s 中索引的位置開始讀取字串,直到 結束,來恢復我們之前的單詞...