Repository files navigation

LevenshteinAlgorithmAndroid

Implementation of Levenshtein Algorithm

  1. Implement a Levenshtein method returning the distance between token 1 and token 2. Implement the algorithm w/o allocating the full matrix, but an optimized version, which allocates only one column at a time.

  2. Use this test-case:

Haus, Maus => 1

Haus, Mausi => 2

Haus, Häuser => 3

Kartoffelsalat, Runkelrüben => 12

  1. Implement a modified version which makes an early exit if the distance exceeds a maximum distance. Return maxDist + 1 in this case.

  2. Use the same test-case (yields different output now):

Haus, Maus, 2 => 1

Haus, Mausi, 2 => 2

Haus, Häuser, 2 => 3

Kartoffelsalat, Runkelrüben, 2 => 3

  1. Implement a performance measurement on all test-cases and both variants of implementation.

About

Implementation of Levenshtein Algorithm

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); })();
Skip to content

Repository files navigation

LevenshteinAlgorithmAndroid

Implementation of Levenshtein Algorithm

  1. Implement a Levenshtein method returning the distance between token 1 and token 2. Implement the algorithm w/o allocating the full matrix, but an optimized version, which allocates only one column at a time.

  2. Use this test-case:

Haus, Maus => 1

Haus, Mausi => 2

Haus, Häuser => 3

Kartoffelsalat, Runkelrüben => 12

  1. Implement a modified version which makes an early exit if the distance exceeds a maximum distance. Return maxDist + 1 in this case.

  2. Use the same test-case (yields different output now):

Haus, Maus, 2 => 1

Haus, Mausi, 2 => 2

Haus, Häuser, 2 => 3

Kartoffelsalat, Runkelrüben, 2 => 3

  1. Implement a performance measurement on all test-cases and both variants of implementation.

About

Implementation of Levenshtein Algorithm

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages