给定一串整数,找出所有可能的连续顺序组成的单词。
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,3
或16,3
,但不能是1,63
,还有user3437460'使用递归的建议:
- 取第一个数字并转换为字母。使用字母和剩余数字进行递归调用。
- 取前两位数。如果
<=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
给定一串整数,如何找出所有可能的连续顺序组成的单词。例如: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,3
或16,3
,但不能是1,63
,还有user3437460'使用递归的建议:
- 取第一个数字并转换为字母。使用字母和剩余数字进行递归调用。
- 取前两位数。如果
<=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