这是一个挑战,拿出最优雅的JavaScript,ruby或其他解决scheme,以相对微不足道的问题。 这个问题是最长的公共子串问题的一个更具体的例子。 我只需要在数组中find最长的公共起始子string。 这大大简化了这个问题。 例如, [interspecies, interstelar, interstate]最长的子串是“inters”。 但是,我不需要在[specifics, terrific]find“定义”。 我已经解决了这个问题,通过在JavaScript中快速编写一个解决scheme,作为我关于shell-like tab-completion ( testing页面 )的答案的一部分。 这个解决scheme略有调整: function common_substring(data) { var i, ch, memo, idx = 0 do { memo = null for (i=0; i < data.length; i++) { ch = data[i].charAt(idx) if (!ch) break if (!memo) memo = ch else if (ch != memo) break […]