LeetCode 820 單詞的壓縮編碼

2021-10-04 12:27:18 字數 724 閱讀 7838

給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。

例如,如果這個列表是 [「time」, 「me」, 「bell」],我們就可以將其表示為 s = 「time#bell#」 和 indexes = [0, 2, 5]。

對於每乙個索引,我們可以通過從字串 s 中索引的位置開始讀取字串,直到 「#」 結束,來恢復我們之前的單詞列表。

那麼成功對給定單詞列表進行編碼的最小字串長度是多少呢?

解題思路:本題一開始想到的思路是找相同的字尾,因為相同字尾的單詞才能一起編碼,但是越往後面思考,發現會把問題搞複雜。然後直接看網友grandyang部落格的解法,基本思路是只有短的單詞才能合併到長的單次中,然後先考慮處理長單詞,那麼這裡就要先對words排序。然後遍歷words陣列,遍歷的過程中,檢視當前的單詞是否在已拼接的字串中,若在則要check一下,單詞尾部的下乙個元素是否是"#",否則將單詞拼接到結果字串中,並在尾部追加"#".

class

solution);

string res;

for(

auto word : words)

}return res.

size()

;}};

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 中索引的位置開始讀取字串,直到 結束,來恢復我們之前的單詞...

leetcode 820 單詞的壓縮碼 筆記

題目鏈結 給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。例如,如果這個列表是 time me bell 我們就可以將其表示為 s time bell 和 indexes 0,2,5 對於每乙個索引,我們可以通過從字串 s 中索引的位置開始讀取字串,直到 結束,來恢復我們...