给定一串整数,找出所有可能的连续顺序组成的单词。

Given a string of integers find out all the possible words that can made out of it in continuous order.

给定一串整数,如何找出所有可能的连续顺序组成的单词。例如:11112

回答:AAAAB 阿卡布 AAKB AAAL 等

public static void main(String[] args) {
    String str="11111124";
    char strChar[]=str.toCharArray();
    String target="";
    for(int i=0;i<strChar.length;i++)
    {
        target=target+(char)Integer.parseInt(""+(16+strChar[i]));
    }
    System.out.println(target);
}

我正在尝试为此找到解决方案,但无法找到所有组合

结合评论说163可以是1,6,316,3,但不能是1,63,还有user3437460'使用递归的建议:

  1. 取第一个数字并转换为字母。使用字母和剩余数字进行递归调用。
  2. 取前两位数。如果<=26,转换为字母并使用字母和剩余数字进行递归调用。

这是代码。由于我不知道该调用什么方法,所以我将使用 x.

public static void main(String[] args) {
    x("11112", "");
    System.out.println("------");
    x("163", "");
}
private static final void x(String digits, String word) {
    if (digits.isEmpty())
        System.out.println(word);
    else {
        int num = Integer.parseInt(digits.substring(0, 1));
        x(digits.substring(1), word + (char)('A' + num - 1));
        if (digits.length() >= 2 && (num = Integer.parseInt(digits.substring(0, 2))) <= 26)
            x(digits.substring(2), word + (char)('A' + num - 1));
    }
}

输出

AAAAB
AAAL
AAKB
AKAB
AKL
KAAB
KAL
KKB
------
AFC
PC