online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
// a i b to ciągi znaków function lev(a, b) { // tworzymy tablicę dwuwymiarową, o rozmiarze |a|+1,|b|+1 (miejsce na pusty ciąg) // niestety w JS nie jest to tak proste jak w innych językach // normalnie wystarczyłoby zrobić coś w stylu `new int[a.length + 1][b.length + 1]` const distances = Array.from(Array(a.length + 1), () => new Array(b.length + 1)); // uzupełniamy pierwszą kolumnę for (let i = 0; i < distances.length; i++) { distances[i][0] = i; } // uzupełniamy pierwszy wiersz for (let i = 0; i < distances[0].length; i++) { distances[0][i] = i; } // iterujemy po kolejnych komórkach, wiersz po wierszu for (let i = 1; i < distances.length; i++) { for (let j = 1; j < distances[i].length; j++) { // sprawdźmy czy znaki są takie same // musimy sprawdzić liczniki o 1 wstecz if (a[i - 1] === b[i - 1]) { // jeśli są takie same, to przepisujemy poprzednią wartość distances[i][j] = distances[i - 1][j - 1]; } else { // w przeciwnym przypadku bierzemy najmniejszą z sąsiadujących wartości // i dodajemy do niej 1 distances[i][j] = 1 + Math.min( distances[i - 1][j], distances[i][j - 1], distances[i - 1][j - 1] ); } } } // zwracamy wynik, który znajduje się w ostatnim wierszu, w ostatniej kolumnie return distances.at(-1).at(-1) } console.log('brawo', 'bramka', lev('brawo', 'bramka')); console.log('bramka', 'brawo', lev('bramka', 'brawo')); console.log('brama', 'brawo', lev('brama', 'brawo')); console.log('gwizd', 'gwizd', lev('gwizd', 'gwizd')); console.log('gwizd', '[pusty ciąg]', lev('gwizd', '')); console.log('brama', 'brawo', lev('brama', 'brawo')); console.log('świst', 'gwizdek', lev('świst', 'gwizdek'));

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue