小编Cap*_*lar的帖子

Java StackOverFlowError - 错误的递归调用?

我给了一组名为"dictionary"的字符串,存储为字段,表示单词字典.

我将编写一个接受String参数("短语")的方法,并返回一个包含字典集中所有单词的集合,这些单词可以通过重新排列给定短语中的字符来实现.基本上我在字典中搜索字谜.

这是我的代码:

public Set<String> getWords(String phrase) {
    Set<String> anagrams = new TreeSet<String>();
    String chosen = "";
    anagrams.addAll(getWords(phrase, chosen));
    return anagrams;
}

public Set<String> getWords(String phrase, String chosen) {
    if (phrase == null) {
        throw new IllegalArgumentException();
    } 
    Set<String> anagrams = new TreeSet<String>();
    if (dictionary.contains(chosen)) {
        anagrams.add(chosen);
        anagrams.addAll(getWords(phrase, chosen));
    } else {
        for (int i = 0; i < phrase.length(); i++) {
            String ch = phrase.substring(i, i + 1);         
            String temp = phrase.substring(0, i) + phrase.substring(i + 1);
            anagrams.addAll(getWords(temp, chosen …
Run Code Online (Sandbox Code Playgroud)

java recursion backtracking

2
推荐指数
1
解决办法
1706
查看次数

标签 统计

backtracking ×1

java ×1

recursion ×1