????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 18.117.246.69 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/lib/node_modules/npm/node_modules/leven/ |
Upload File : |
'use strict'; const array = []; const charCodeCache = []; const leven = (left, right) => { if (left === right) { return 0; } const swap = left; // Swapping the strings if `a` is longer than `b` so we know which one is the // shortest & which one is the longest if (left.length > right.length) { left = right; right = swap; } let leftLength = left.length; let rightLength = right.length; // Performing suffix trimming: // We can linearly drop suffix common to both strings since they // don't increase distance at all // Note: `~-` is the bitwise way to perform a `- 1` operation while (leftLength > 0 && (left.charCodeAt(~-leftLength) === right.charCodeAt(~-rightLength))) { leftLength--; rightLength--; } // Performing prefix trimming // We can linearly drop prefix common to both strings since they // don't increase distance at all let start = 0; while (start < leftLength && (left.charCodeAt(start) === right.charCodeAt(start))) { start++; } leftLength -= start; rightLength -= start; if (leftLength === 0) { return rightLength; } let bCharCode; let result; let temp; let temp2; let i = 0; let j = 0; while (i < leftLength) { charCodeCache[i] = left.charCodeAt(start + i); array[i] = ++i; } while (j < rightLength) { bCharCode = right.charCodeAt(start + j); temp = j++; result = j; for (i = 0; i < leftLength; i++) { temp2 = bCharCode === charCodeCache[i] ? temp : temp + 1; temp = array[i]; // eslint-disable-next-line no-multi-assign result = array[i] = temp > result ? temp2 > result ? result + 1 : temp2 : temp2 > temp ? temp + 1 : temp2; } } return result; }; module.exports = leven; // TODO: Remove this for the next major release module.exports.default = leven;