820. 单词的压缩编码

原题

820. 单词的压缩编码_第1张图片

思路

刚看到题目,第一反应就是先给数组排序,然后对比每个字符串是否重叠
但在简单运行几个测试案例后发现没有这么简单,要用到字典树,我对这个的理解就像是一个N叉树,仔细一想后发现其实不用这么麻烦,这次题目只是返回一个字符串长度,借用了字典树中前缀树的方法
先将数组中的元素全部翻转,然后将字符串数组排序,用的是Java中的Arrays.sort方法来进行排序,然后遍历数组,用String类中的方法substring()截取字符串,然后进行对比,失败则将数据长度写入count中,最后提交count

代码

class Solution {
	public int minimumLengthEncoding(String[] words) {
        int count = 0;
        
        for(int i=0;i

运行结果

820. 单词的压缩编码_第2张图片
本以为能有个80%,结果还是太年轻了,一次过可还行,估计耗时出在StringBuilder和Arrays.sort上,这两个会比较耗时,如果改成自己来实现,时间应该还能再上去点。

你可能感兴趣的:(LeetCode)