Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function commandInterpretor(input) {
- let numsArr = input.shift().split(" ").filter(x => x !== "");
- for (let i = 0; i < numsArr.length; i++) {
- let ascii = numsArr[i].charCodeAt(0);
- if ((ascii < 65 || ascii > 90) && (ascii < 97 || ascii > 122)) {
- numsArr[i] = Number(numsArr[i])
- }
- }
- for (let i = 0; i < input.length; i++) {
- let line = input[i].split(" ");
- let command = line.shift();
- if (command === "end") {
- break;
- } else if (command === "reverse") {
- let fromIndex = Number(line[1]);
- let countNums = Number(line[3]);
- if (typeof numsArr[fromIndex] !== "undefined" && typeof numsArr[fromIndex + countNums] !== "undefined") {
- let takeElements = numsArr.splice(fromIndex, countNums);
- let count = 0;
- for (let j = fromIndex; j < countNums + fromIndex; j++) {
- numsArr.splice(fromIndex, 0, takeElements[count]);
- count++;
- }
- } else {
- console.log("Invalid input parameters.");
- }
- } else if (command === "sort") {
- let fromIndex = Number(line[1]);
- let countNums = Number(line[3]);
- if (typeof numsArr[fromIndex] !== "undefined" && typeof numsArr[fromIndex + countNums] !== "undefined") {
- let takeElements = numsArr.splice(fromIndex, countNums);
- takeElements.sort().reverse();
- let count = 0;
- for (let j = fromIndex; j < countNums + fromIndex; j++) {
- numsArr.splice(fromIndex, 0, takeElements[count]);
- count++;
- }
- } else {
- console.log("Invalid input parameters.");
- }
- } else if (command === "rollLeft") {
- let times = Number(line[0]);
- let rotate = times % numsArr.length;
- if (times > 0) {
- for (let j = 0; j < rotate; j++) {
- let takeFront = numsArr.shift();
- numsArr.push(takeFront);
- }
- } else {
- console.log("Invalid input parameters.");
- }
- } else if (command === "rollRight") {
- let times = Number(line[0]);
- let rotate = times % numsArr.length;
- if (times > 0) {
- for (let j = 0; j < rotate; j++) {
- let takeFront = numsArr.pop();
- numsArr.unshift(takeFront);
- }
- } else {
- console.log("Invalid input parameters.");
- }
- }
- }
- let result = "";
- for (let i = 0; i < numsArr.length; i++) {
- let char = numsArr[i];
- if (i === 0) {
- result += `[${char}`;
- } else if (i > 0 && i < numsArr.length - 1) {
- result += `, ${char}`
- } else if (i === numsArr.length - 1) {
- result += `, ${char}]`;
- }
- }
- console.log(result)
- }
- commandInterpretor([
- 'a b c',
- 'rollRight 2000000000 times',
- 'end'
- ])
- // commandInterpretor([
- // '1 2 5 8 7 3 10 6 4 9',
- // 'reverse from 2 count 4',
- // 'rollLeft 3 times',
- // 'sort from 7 count 3',
- // 'end'
- // ]);
- // commandInterpretor([
- // '1 2 5 8 7 3 10 6 4 9',
- // 'sort from 0 count 7',
- // 'end'
- // ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement