320 Generalized Abbreviation
Problem:
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", "3d", "w3", "4"]
Solutions:
public class Solution {
public List<String> generateAbbreviations(String word) {
List<String> result = new LinkedList<String>();
result.add(word);
for (int i = 1; i <= word.length(); i ++) {
for (int j = 0; j + i <= word.length(); j ++) {
List<String> following = generateAbbreviations(j + i + 1 <= word.length()?word.substring(j + i + 1):"");
for (String f:following) {
String s = word.substring(0, j) + i + (j + i < word.length()?word.charAt(j + i):"") + f;
result.add(s);
}
}
}
return result;
}
}Last updated