ナンバーバックトラック(より完全な配列のような)----最初の練習バック

(より完全な配列のような)バックナンバー

public class Test {
    Map<String,String> map = new HashMap<String,String>(){
        {
            put("2", "abc");
            put("3", "def");
            put("4", "ghi");
            put("5", "jkl");
            put("6", "mno");
            put("7", "pqrs");
            put("8", "tuv");
            put("9", "wxyz");
        }
    };
    List<String> list = new ArrayList<>();
    void backtrack(String currentCombination,String next_str)//结束的标志:当next_str为空串是
    {
        if(next_str.equals(""))
        {
            list.add(currentCombination);
            return;
        }
        else
        {
            String s = next_str.substring(0,1);
            s = map.get(s);
            for(int i=0;i<s.length();i++)
            {
              backtrack(currentCombination+s.substring(i,i+1),next_str.substring(1));

            }
        }
    }
    @org.junit.Test
    public void Test()
    {
        backtrack("","23");
        for (String s : list) {
            System.out.println(s);
        }
    }
}
公開された22元の記事 ウォンの賞賛0 ビュー589

おすすめ

転載: blog.csdn.net/qq_44932835/article/details/105275517