kostenko-lab1
Version:
Kostenko Sasha lab1
127 lines (104 loc) • 3.63 kB
JavaScript
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;
// }