給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 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] 。
首先對words反轉,然後排序,排序依據如下:挨個字母比較,字母小的靠前,若字母相同則長度長的靠前,這樣我們可以將words中的字串排序,使得具有相同結尾的長字串始終在前壓入。之後再將words反轉,然後開始逐個查詢,如果能查到且結尾是#,則說明可以壓縮,反之則不行
class solution
if (len1 > len2)
return true;
else
return false;
}};
leetcode單詞的壓縮編碼
1.反轉 排序 當乙個字串是另乙個字串的字尾時,該字串可以省略,如me是time的字尾 首先遍歷字串陣列,反轉每乙個字串,然後將字串陣列按照字典需排列 如time me bell 反轉emit em lleb 按字典序排列 em emit lleb 只需要比較相鄰的字串是否後乙個包含前乙個即可 如e...
Leetcode 820 單詞的壓縮編碼
給定乙個單詞列表,我們將這個列表編碼成乙個索引字串s與乙個索引列表a。例如,如果這個列表是 time me bell 我們就可以將其表示為s time bell 和indexes 0,2,5 對於每乙個索引,我們可以通過從字串s中索引的位置開始讀取字串,直到 結束,來恢復我們之前的單詞列表。那麼成功...
LeetCode 單詞的壓縮編碼(字首樹)
給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。例如,如果這個列表是 time me bell 我們就可以將其表示為 s time bell 和 indexes 0,2,5 對於每乙個索引,我們可以通過從字串 s 中索引的位置開始讀取字串,直到 結束,來恢復我們之前的單詞...