Java - Brute强制算法

时间:2016-04-02 03:37:48

标签: java string algorithm recursion generator

我一直试图制作一个强制算法,但它似乎不起作用。它会在三个字符串生成并冻结后停止。

这是我的代码:

public static final char[] CHARSET_1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890./,[]\;\'\"".toCharArray();
public final ExecutorService executor = Executors.newFixedThreadPool(30);

protected void recur(final String base, final int times) {
    if (base.length() < times) {
        for (final char c : CHARSET_1) {
            final String b = base + c;
            System.out.println("Current: " + b);
            executor.execute(new Runnable() {
                public void run() {
                    recur(b, times);
                } // I also tried it without the executor, same results.
            });
        }
    }
}

public void bruteforce() {
    final Thread generator = new Thread(new Runnable() {
        public void run() {
            recur("", 5);
        }
    });
    generator.start();
}

在功能中 recur("", 5);,5表示生成长度为5 + 1的字符串。

这是我得到的输出:

a
aa
aaa

然后冻结了。我无法弄清楚为什么。我认为这可能是内存泄漏问题,但我不知道。我也尝试过没有ThreadPools,但我似乎得到同样的问题......

感谢任何帮助,非常感谢! :)

0 个答案:

没有答案