UNPKG

kostenko-lab1

Version:

Kostenko Sasha lab1

127 lines (104 loc) 3.63 kB
class Lab1 { // task1(string){ // string = string.toLowerCase(); // var result = ''; // for (var symbol of string) { // if (string.split(symbol).length - 1 > 1) { // result += ')'; // } else { // result += '('; // } // } // return result; // } task1(str){ this.str = str.toLowerCase(); var arr = this.str.split(""); var result = []; result = arr.map(elem => arr.indexOf(elem) === arr.lastIndexOf(elem) ? "(" : ")").join(""); return result; // console.log(result); } task2(arraySolution){ let isRowValid = row => { let rowSum = 0; return row.length == 9 && new Set(row).size == 9; }; let areColumnsValid = matrix => { let columns = []; //map columns to horizontal arrays for (var i = 0; i < matrix.length; i++) { let column = matrix.map(row => row[i]); columns.push(column); } return columns.every(column => isRowValid(column)); } let numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; if (arraySolution.length != 9 || !areColumnsValid(arraySolution) || !arraySolution.every(isRowValid)) return false; //select boxes into rows let plainBoxes = []; for (let i = 0; i < 9; i++) { plainBoxes.push(new Array()); } for (let i = 0; i < 9; i++) { for (let j = 0; j < 9; j++) { let currentBox = plainBoxes[Math.floor(i / 3) * 3 + Math.floor(j / 3)]; if (currentBox.find(el => el == arraySolution[i][j])) { return false; } else { currentBox.push(arraySolution[i][j]); } } } return true; } } module.exports = Lab1; // task1(string){ // string = string.toLowerCase(); // var result = ''; // for (var symbol of string) { // if (string.split(symbol).length - 1 > 1) { // result += ')'; // } else { // result += '('; // } // } // return result; // } // this.string = string.toLowerCase(); // var result = ''; // result = this.string.map(elem) => (return this.string.indexOf(elem) === this.string lastIndexOf(elem) ? ")" : "("); // consolt.log(result); // task2(arraySolution){ // for (var y = 0; y < 9; ++y) { // for (var x = 0; x < 9; ++x) { // var value = arraySolution[y][x]; // if (value) { // // Check the line // for (var x2 = 0; x2 < 9; ++x2) { // if (x2 != x && arraySolution[y][x2] == value) { // return false; // } // } // // Check the column // for (var y2 = 0; y2 < 9; ++y2) { // if (y2 != y && arraySolution[y2][x] == value) { // return false; // } // } // // Check the square // var startY = Math.floor(y/3)*3; // for (var y2 = startY; y2 < startY + 3; ++y2) { // var startX = Math.floor(x/3)*3; // for (x2 = startX; x2 < startX + 3; ++x2) { // if ((x2 != x || y2 != y) && arraySolution[y2][x2] == value) { // return false; // } // } // } // } // } // } // return true; // }