我试图在一个单词中找到字母子集的字谜;例如,如果单词是" hello",程序将检查整个单词,然后单词丢失1个字母,依此类推。
这是我的代码,我不确定我在哪里做错了:
import java.util.*;
import java.io.*;
class Perm {
public static void main(String[] args) {
System.out.println(permutations("hello"));
}
public static String permutations(String word) {
String s = "";
for(int i=0; i<word.length(); i++) {
char ithChar = word.charAt(i);
String newWord = word.substring(0,i) + word.substring(i+1);
s = permutations(newWord);
}
return s;
}
}
答案 0 :(得分:0)
我认为你不需要这种方法的误解。尝试重写这样的东西:
public static void permutations(String word) {
for(int i = word.length(); i > 0; i--){
System.out.println(word.substring(0, i));
}
}
如果你不需要存储它,只是为了打印,这是可以的。 但是你猜的主要思想是使用递减循环。
答案 1 :(得分:0)
尝试这样的事情:
public class Perm {
public static void main(String[] args) {
String word = "hello";
for(int i=word.length(); i!=0; i--) {
String permutation = word.substring(0, i);
System.out.println(permutation);
}
}
}
每次循环运行时,单词结尾都会有一个字符,你会得到这样的输出:
hello
hell
hel
he
h
(也应该很容易改变它以从单词的开头取出字母)。
我希望这是你想要的,因为问题不是很清楚。 (您可能还想查看this answer。)