首页 > 代码库 > 320. Generalized Abbreviation
320. Generalized Abbreviation
这道题没有做出来不应该。
显然是backtracking.
分两种情况:
一种是到当前位置的字母重新开始计数
一种是继续前一个字母的计数
需要注意的是,如果cnt==0是不要加到结果String里的
1 public List<String> generateAbbreviations(String word) { 2 List<String> res = new ArrayList<String>(); 3 if(word == null) { 4 return res; 5 } 6 generate(res, word, 0, "", 0); 7 return res; 8 } 9 10 private void generate(List<String> res, String word, int index, String cur, int cnt) {11 if(index == word.length()) {12 res.add(cur + ((cnt == 0)?"":cnt));13 return;14 }15 generate(res, word, index + 1, cur, cnt + 1);16 generate(res, word, index + 1, cur + ((cnt == 0)?"":cnt) + word.charAt(index) , 0);17 }
320. Generalized Abbreviation
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。