Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Clear&Readable solution in Clear category for [old] String Conversion by SaintDron
"use strict";
function stepsToConvert(line1, line2) {
let offset = 0,
steps = 0;
for (let i = 0; i < line1.length; i++) {
if (line1[i] === line2[i + offset]) continue; // Eq
if (line1[i + 1] === line2[i + offset]) offset--; // Delete
if (line1[i] === line2[i + 1 + offset]) offset++; // Insert
steps++; // Replace
}
return line2.length - line1.length + steps - offset;
}
var assert = require('assert');
if (!global.is_checking) {
assert.equal(stepsToConvert('line1', 'line1'), 0, "eq")
assert.equal(stepsToConvert('line1', 'line2'), 1, "2")
assert.equal(stepsToConvert('line', 'line2'), 1, "none to 2")
assert.equal(stepsToConvert('ine', 'line2'), 2, "need two more")
assert.equal(stepsToConvert('line1', '1enil'), 4, "everything is opposite")
assert.equal(stepsToConvert('', ''), 0, "two empty")
assert.equal(stepsToConvert('l', ''), 1, "one side")
assert.equal(stepsToConvert('', 'l'), 1, "another side")
console.log("You are good to go!");
}
Aug. 14, 2018
Comments: