function solve(input) {
let myStr = input.slice(0, 1)[0];
for (const line of input.slice(1)) {
let [cmd, index, value] = line.split('|');
if (cmd == 'Decode') {
console.log(`The decrypted message is: ${myStr}`)
break;
} else {
switch (cmd) {
case 'ChangeAll':
changeAll(index, value)
break;
case 'Insert':
insert(index, value)
break;
case 'Move':
move(index)
break;
default:
break;
}
}
}
function changeAll(subStr, replacement) {
if (myStr.includes(subStr)) { // 50/100
let pattern = RegExp(subStr, 'g'); // ------
myStr = myStr.replace(pattern, replacement) // ------
} // ------
// while(myStr.includes(subStr)){ // 100/100
// myStr = myStr.replace(subStr,replacement); // --------
// } // --------
}
function insert(index, value) {
let validation = Number(index) >= 0 && Number(index) <= myStr.length;
if (validation) {
let newStr = myStr.split('')
newStr.splice(+index, 0, value)
myStr = newStr.join('')
}
}
function move(indexEnd) {
let validation = Number(indexEnd) >= 0 && Number(indexEnd) <= myStr.length;
if (validation) {
let newStr = myStr.split('')
newStr = [...newStr.slice(+indexEnd), ...newStr.slice(0, +indexEnd)]
myStr = newStr.join('');
}
}
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}