Leetcode820:如何实现单词压缩编码的详细解法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计734个文字,预计阅读时间需要3分钟。
给定一个单词列表,我们将这个列表编码成一个索引字符串S和一个索引列表A。
例如,如果这个列表是[time, me, bell],我们将按照以下步骤进行编码:
1. 创建一个索引字符串S,其中每个单词对应一个唯一的索引,从1开始。例如,time对应1,me对应2,bell对应3。所以S为1,2,3。
2. 创建一个索引列表A,其中每个单词的索引按照它们在列表中的顺序排列。例如,time的索引是1,me的索引是2,bell的索引是3。所以A为[1, 2, 3]。
结果为:S: 1,2,3A: [1, 2, 3]
给定一个单词列表我们将这个列表编码成一个索引字符串S与一个索引列表A。例如如果这个列表是[time,me,bell]我给定一个单词列表我们将这个列表编码成一个索引字符串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] 。
提示
本文共计734个文字,预计阅读时间需要3分钟。
给定一个单词列表,我们将这个列表编码成一个索引字符串S和一个索引列表A。
例如,如果这个列表是[time, me, bell],我们将按照以下步骤进行编码:
1. 创建一个索引字符串S,其中每个单词对应一个唯一的索引,从1开始。例如,time对应1,me对应2,bell对应3。所以S为1,2,3。
2. 创建一个索引列表A,其中每个单词的索引按照它们在列表中的顺序排列。例如,time的索引是1,me的索引是2,bell的索引是3。所以A为[1, 2, 3]。
结果为:S: 1,2,3A: [1, 2, 3]
给定一个单词列表我们将这个列表编码成一个索引字符串S与一个索引列表A。例如如果这个列表是[time,me,bell]我给定一个单词列表我们将这个列表编码成一个索引字符串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] 。
提示

