我的家庭作业使用permutationHelper
方法时出错。
名为zybooks的自动评分系统并没有告诉我做错了什么。。
然而,它给了我一个错误,上面写着:
Test feedback : permutation("123") incorrectly returned
我的输出显示:Your output : 123 132 213 231 312 321
这,imo看起来完全像它应该做的。
(讲师在注释代码中留下示例(。
我很想理解为什么我会出现这个错误,即使代码似乎运行正常或者如果有更好的方法来完成任务。
注意
我不允许更改方法的参数或标头。
下面是我的代码。
/*
* The following method is given to you, and you will be responsible for completing the permutationHelper method it calls.
* Sometimes, helper methods are used for recursive methods when another parameter is needed to recursively call a method repeatedly, but passing that parameter initially doesn't make sense.
*/
public static String permutation(String word){
return permutationHelper(" ", word);
}
/* permutationHelper()
* This method is called by the permutation method.
* Given a string, return a string that lists all possible permutations of the letters in the string, with spaces preceding each permutation.
* For example, "123" would give "123 132 213 231 312 321".
* The perm parameter keeps track of the current permutation you are creating.
* Consider using the a for loop to call the method recursively a certain number of times with different parameters, so you cover all permutations.
*/
public static String permutationHelper(String perm, String word) {
if (word.isEmpty()) return perm;
String a = "";
for (int i = 0; i < word.length(); i++)
{
a += permutationHelper(perm.trim() + word.charAt(i) + " ", word.substring(0, i) + word.substring(i+1, word.length()));
}
return a;
}
如有任何指导,我们将不胜感激。
/*
* The following method is given to you, and you will be responsible for completing the permutationHelper method it calls.
* Sometimes, helper methods are used for recursive methods when another parameter is needed to recursively call a method repeatedly, but passing that parameter initially doesn't make sense.
*/
public static String permutation(String word){
return permutationHelper(" ", word);
}
/* permutationHelper()
* This method is called by the permutation method.
* Given a string, return a string that lists all possible permutations of the letters in the string, with spaces preceding each permutation.
* For example, "123" would give "123 132 213 231 312 321".
* The perm parameter keeps track of the current permutation you are creating.
* Consider using the a for loop to call the method recursively a certain number of times with different parameters, so you cover all permutations.
*/
public static String permutationHelper(String perm, String word) {
if (word.isEmpty()) return perm;
String a = "";
for (int i = 0; i < word.length(); i++) a += permutationHelper(perm + word.charAt(i), word.substring(0, i) + word.substring(i+1, word.length()));
return a;
}
错误出现在说明书中。教授们说,不要理会评论中的例子,一定要在单词前面加上烫发。