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     }
时间: 2024-10-13 08:22:12

320. Generalized Abbreviation的相关文章

Leetcode 320: Generalized Abbreviation

Write a function to generate the generalized abbreviations of a word. Example: Given word = "word", return the following list (order does not matter): ["word", "1ord", "w1rd", "wo1d", "wor1", &qu

[Locked] Generalized Abbreviation

Write a function to generate the generalized abbreviations of a word. Example:Given word = "word", return the following list (order does not matter): ["word", "1ord", "w1rd", "wo1d", "wor1", &quo

[LeetCode] Generalized Abbreviation 通用简写

Write a function to generate the generalized abbreviations of a word. Example: Given word = "word", return the following list (order does not matter): ["word", "1ord", "w1rd", "wo1d", "wor1", &qu

【python-子集】Generalized Abbreviation(广义缩写)

Write a function to generate the generalized abbreviations of a word. Example: Given word = “word”, return the following list (order does not matter): [“word”, “1ord”, “w1rd”, “wo1d”, “wor1”, “2rd”, “w2d”, “wo2”, “1o1d”, “1or1”, “w1r1”, “1o2”, “2r1”,

[LeetCode]Generalized Abbreviation

感觉我的方法逻辑不够清晰 public class Solution { private List<String> result; public List<String> generateAbbreviations(String word) { result = new ArrayList<String>(); helper(word, -2, 0); result.add(word); return result; } public void helper(Strin

Generalized Abbreviation

1 public class Solution { 2 public List<String> generateAbbreviations(String word) { 3 List<String> result = new ArrayList<>(); 4 5 getAbb(word, 0, 0, "", result); 6 return result; 7 } 8 9 private void getAbb(String word, int i

320. Generalized Abbreviation-- back tracking

把一个字符串中字母用数字代替,产生所有的组合数Input: "word" Output: ["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", &quo

[LeetCode] 527. Word Abbreviation 单词缩写

Given an array of n distinct non-empty strings, you need to generate minimal possible abbreviations for every word following rules below. Begin with the first character and then the number of characters abbreviated, which followed by the last charact

leetcode 锁掉的题目清单

也刷leetcode, 先把锁掉的题目留备份好了: 156 Binary Tree Upside Down  [1] Problem: Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that shares the same parent node) or empty, flip it upside down and turn it into a tre