T320 列举单词的全部缩写

题目:每次用1替换单词的一个字符,并且合并连续的1,返回所有可能的替换方案
思想:暴力枚举所有可能的替换方案,每替换一次就保存一下结果,在保存结果之前先合并里面连续的1
时间复杂度O(n! * n) n为word的长度
空间复杂度O(n! *n)(栈的深度,或者递归树的深度 * n )

class Solution {
    List res = new ArrayList<>();
    public String getString(StringBuilder s){//合并连续的1
        StringBuilder res = new StringBuilder();
        int i = 0;
        while(i generateAbbreviations(String word) {
       int len = word.length();
       res.add(word);
       if(len<=0)return res;
       helper(new StringBuilder(word),0);
       return res; 
    }
}

你可能感兴趣的:(算法)