【发布时间】:2019-08-12 06:44:51
【问题描述】:
N 轮 压缩在一个字符串上运行,其中每一轮用一个特殊字符(使用字典)替换某些字符模式。
给定这个压缩字符串和用于压缩的字典,我们需要找到原始字符串。
例如:
用于压缩的字典:
b12k -> ?
a?l -> #
#mn -> !
所以,字符串 ab12klmn 被压缩为 !
哪种数据结构最适合存储这个字典,这样解压是 O(n) 操作,使用的额外空间最少?
我尝试过的: 这是一个面试问题,我将字典存储在一个地图中,目标字母表(压缩字典的)作为我的地图的键,解压缩的字符串作为值。 然后遍历给定的字符串,用它们各自的扩展替换特殊字符。 例如:
! -> ab12klmn
# -> ab12k
? -> b12k
然后,为了减少字符串模式的重复性,我对这本字典进行了树状结构,但面试官并不满意。 我在哪里可以改进此解决方案?
【问题讨论】:
-
我试过这样做,这增加了空间复杂度
标签: string algorithm data-structures compression