Comparison of String Distance Algorithms

Longest Common Substring distance: Minimum number of symbols that have to be removed in both strings until resulting substrings are identical.

Source: https://stackoverflow.com/questions/1916218/find-the-longest-common-starting-substring-in-a-set-of-strings

<span class="kwd">function</span><span class="pln"> sharedStart</span><span class="pun">(</span><span class="pln">array</span><span class="pun">){</span>
    <span class="kwd">var</span><span class="pln"> A</span><span class="pun">=</span><span class="pln"> array</span><span class="pun">.</span><span class="pln">concat</span><span class="pun">().</span><span class="pln">sort</span><span class="pun">(),</span><span class="pln"> 
    a1</span><span class="pun">=</span><span class="pln"> A</span><span class="pun">[</span><span class="lit">0</span><span class="pun">],</span><span class="pln"> a2</span><span class="pun">=</span><span class="pln"> A</span><span class="pun">[</span><span class="pln">A</span><span class="pun">.</span><span class="pln">length</span><span class="pun">-</span><span class="lit">1</span><span class="pun">],</span><span class="pln"> L</span><span class="pun">=</span><span class="pln"> a1</span><span class="pun">.</span><span class="pln">length</span><span class="pun">,</span><span class="pln"> i</span><span class="pun">=</span> <span class="lit">0</span><span class="pun">;</span>
    <span class="kwd">while</span><span class="pun">(</span><span class="pln">i</span><span class="pun"><</span><span class="pln">L </span><span class="pun">&&</span><span class="pln"> a1</span><span class="pun">.</span><span class="pln">charAt</span><span class="pun">(</span><span class="pln">i</span><span class="pun">)===</span><span class="pln"> a2</span><span class="pun">.</span><span class="pln">charAt</span><span class="pun">(</span><span class="pln">i</span><span class="pun">))</span><span class="pln"> i</span><span class="pun">++;</span>
    <span class="kwd">return</span><span class="pln"> a1</span><span class="pun">.</span><span class="pln">substring</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> i</span><span class="pun">);</span>
<span class="pun">}</span>