欢迎访问
讨论版列表 - 算法集锦 - 主题数: 41 | 文章数: 47 | 管理员: homecox

算法集锦

版面 | 文摘区 | 马克区

文章数: 1 | 分页: << 1 >>
admin
[回复] [修改] [删除] [返回版面] 1  
作者: admin, 讨论版: 算法集锦, 发表时间: 2016-04-02 22:23:13 PST
标题: Crack a Keycode
关键字:

Crack a Keycode

Also see:

- Career cup discussion
- https://en.wikipedia.org/wiki/De_Bruijn_sequence

de Bruijn construction by Lyndon Words. See here Java – De Bruijn public static StringBuilder sequence; public static int[] a; public static int alphabet; public static int subLength; // De Bruijn Sequence for alphabet k // and subsequence of length n public String crackSequence(int k, int n) { alphabet = k; subLength = n; sequence = new StringBuilder(); a = new int[n + 1]; db(1, 1); return sequence.toString(); } // Lyndon Words private void db(int t, int p) { if (t > subLength) { if (subLength % p == 0) for (int i = 1; i < p + 1; ++i) sequence.append(a[i]); } else { a[t] = a[t - p]; db(t + 1, p); for (int j = a[t - p] + 1; j < alphabet; ++j) { a[t] = j; db(t + 1, t); } } }


--

※ 来源: homecox.com  [来自: 72.]


Reply

Please log in first.