Created
June 28, 2020 21:09
-
-
Save Katunya/fc74b0d684f950ee7ad3ae3a174d0103 to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/wegukir/27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width"> | |
| <title>JS Bin</title> | |
| </head> | |
| <body> | |
| <script id="jsbin-javascript"> | |
| /** | |
| * Напишите функцию, которая возвращает n-ую запись в последовательности, | |
| * где n — это число, которое вы передаёте в качестве аргумента функции. | |
| * @param {number} n | |
| * @returns {number} | |
| */ | |
| function fibonacci(n) { | |
| let previus = 0,next = 1; | |
| for(let i = 0; i<n; i++) { | |
| next = previus + next; | |
| previus = next - previus; | |
| } | |
| return previus; | |
| } | |
| // Проверка | |
| console.log('3 ->', fibonacci(3)); // 2 | |
| console.log('7 ->', fibonacci(7)); // 13 | |
| /** | |
| * Релизуйте сортировку массива | |
| * @param {any[]} values сортируемый массив | |
| * @returns {any[]} | |
| */ | |
| function sort(values) { | |
| return values.sort() | |
| } | |
| // Проверка | |
| console.log(sort([7, 2, 99, 5, 1, 3, 4, -1])); // [-1, 1, 2, 3, 4, 5, 7, 99] | |
| /** | |
| * Перенос нулей в конец массива | |
| * @param {number[]} input | |
| * @return {number[]} | |
| */ | |
| function zsort(input) { | |
| console.log(input) | |
| let j = 0; | |
| for(let i = 0 ; i<input.length; i++){ | |
| if(input[i] !== 0){ | |
| [input[i], input[j]] = [input[j], input[i]] ; | |
| j++; | |
| } | |
| } | |
| return input; | |
| } | |
| // Проверка | |
| console.log(zsort([1, 0, 2, 3, 0, 4, 0])); // [1, 2, 3, 4, 0, 0, 0] | |
| /** | |
| * Написать функцию получения простых чисел | |
| */ | |
| const sum = (n) => { | |
| const nums = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]; | |
| return nums.slice(0, Math.max( 0, Math.min(n, nums.length) ) ).join(', '); | |
| }; | |
| // Проверка | |
| console.log("result:", sum(40)); | |
| /** | |
| * Получения массива уникальных значений | |
| * @param {number[]} values | |
| * @return {*} | |
| */ | |
| function uniq(values) { | |
| values = values.sort( (a, b) => { return a*1 - b*1;} ); | |
| let res = [values[0]]; | |
| for (let i = 1; i < values.length; i++) { | |
| if (values[i-1] !== values[i]) { | |
| res.push(values[i]); | |
| } | |
| } | |
| return res; | |
| } | |
| // Проверка | |
| console.log(uniq([2, 3, 1, 2, 1, 5, 6, 3, 1, 8, 5])); | |
| /** | |
| * Реализовать RLE-сжатие: AAAB -> A3B, BCCDDDAXXXX -> BC2D3AX4 | |
| * @param {string} value | |
| * @return {string} | |
| */ | |
| function rle(value) { | |
| let count = 0; | |
| let result = ''; | |
| for (let i = 0; i < value.length; i++) { | |
| let current = value.charAt(i); | |
| let next = value.charAt(i + 1); | |
| if (current === next) { | |
| count++; | |
| } | |
| else { | |
| result += current; | |
| if (count > 0) { | |
| result += count + 1; | |
| } | |
| count = 0; | |
| } | |
| } | |
| return result; | |
| } | |
| // Проверка | |
| console.log(rle('AVVVBBBVVXDHJFFFFDDDDDDHAAAAJJJDDSLSSSDDDD')); | |
| /** | |
| * Реализовать метод `.delay` | |
| */ | |
| Function.prototype.delay = function (time) { | |
| setTimeout(this, time) | |
| }; | |
| foo.delay(300); | |
| function foo() { | |
| console.log("Wow!"); | |
| } | |
| /** | |
| * Сейчас console выводит "undefined", нужно это исправить | |
| */ | |
| function Bomb(message, delay) { | |
| this.message = message; | |
| setTimeout(this.blowUp.bind(this), delay * 1000); // взрываем через delay sec | |
| } | |
| Bomb.prototype.blowUp = function () { | |
| console.log(this.message); | |
| }; | |
| new Bomb("Allahu akbar!", .5); | |
| /** | |
| * Найти пересечение двух массивов | |
| * @param {number[]} left | |
| * @param {number[]} right | |
| * @return {number[]} | |
| */ | |
| function intersection(left, right) { | |
| let result = []; | |
| for (let i of left){ | |
| for (let j of right) { | |
| if (i === j) { | |
| result.push(i); | |
| } | |
| } | |
| return [...new Set(result)]; | |
| } | |
| // Проверка | |
| console.log(intersection( | |
| [1, 2, 3, 4, 5], | |
| [2, 8, 3] | |
| )); | |
| /** | |
| * Реализовать функцию для формирования дерева категорий | |
| * | |
| * @param {[{title: string, left: number, right: number}]} inputData | |
| * @return {string} | |
| */ | |
| function getCategoriesAsHTML(inputData) { | |
| for (let i=0; i < inputData.length; i++){ | |
| const thing = | |
| `<div> | |
| <ul> | |
| <li>${inputData[i].title}</li> | |
| <ul> | |
| <li>${inputData[i].left}</li> | |
| <li>${inputData[i].right}</li> | |
| </ul> | |
| </ul> | |
| ` | |
| document.body.insertAdjacentHTML('beforebegin', thing); | |
| } | |
| container.style.display = 'none'; | |
| } | |
| var container = document.getElementById('result-container'); | |
| container.innerHTML = getCategoriesAsHTML(getInputData()); | |
| // <ul> | |
| // <li> | |
| // Одежда | |
| // <ul> | |
| // <li> | |
| // Мужская | |
| // <ul> | |
| // <\!-- И так далее --> | |
| // </ul> | |
| // </li> | |
| // </ul> | |
| // Входные данные, их трогать не надо | |
| function getInputData() { | |
| return [ | |
| { | |
| title: "Одежда", | |
| left: 1, | |
| right: 22 | |
| }, | |
| { | |
| title: "Мужская", | |
| left: 2, | |
| right: 9 | |
| }, | |
| { | |
| title: "Женская", | |
| left: 10, | |
| right: 21 | |
| }, | |
| { | |
| title: "Костюмы", | |
| left: 3, | |
| right: 8 | |
| }, | |
| { | |
| title: "Платья", | |
| left: 11, | |
| right: 16 | |
| }, | |
| { | |
| title: "Юбки", | |
| left: 17, | |
| right: 18 | |
| }, | |
| { | |
| title: "Блузы", | |
| left: 19, | |
| right: 20 | |
| }, | |
| { | |
| title: "Брюки", | |
| left: 4, | |
| right: 5 | |
| }, | |
| { | |
| title: "Жакеты", | |
| left: 6, | |
| right: 7 | |
| }, | |
| { | |
| title: "Вечерние", | |
| left: 12, | |
| right: 13 | |
| }, | |
| { | |
| title: "Летние", | |
| left: 14, | |
| right: 15 | |
| } | |
| ]; | |
| } | |
| /** | |
| * Проверка на сбалансированность фигурных скобкок | |
| * @param {string} input | |
| * @return {boolean} | |
| */ | |
| function isBalanced(input) { | |
| let open = '{'; | |
| let close = '}'; | |
| let countOpen = 0; | |
| let countClose = 0; | |
| for (let i of input){ | |
| if(i === strOpen){ | |
| countOpen++; | |
| } | |
| if(i === strClose){ | |
| countClose++; | |
| } | |
| } | |
| if(countOpen === countClose){ | |
| return true; | |
| } else{ | |
| return false; | |
| } | |
| } | |
| // Проверка | |
| console.log('balanced:', isBalanced('{{}{}}{}')); // true | |
| console.log('not balanced:', isBalanced('{}{{}')); // false | |
| /** | |
| * Является ли строка палиндромом | |
| * @param {string} value | |
| * @return {boolean} | |
| */ | |
| function isPalindrome(value) { | |
| value = value.toLowerCase().replace(/ /g, '');; | |
| let strReverse = value.split('').reverse().join(''); | |
| if (value === strReverse){ | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| } | |
| console.log(isPalindrome('abcd')); // false | |
| console.log(isPalindrome('A man a plan a canal Panama'));// true | |
| </script> | |
| <script id="jsbin-source-javascript" type="text/javascript">/** | |
| * Напишите функцию, которая возвращает n-ую запись в последовательности, | |
| * где n — это число, которое вы передаёте в качестве аргумента функции. | |
| * @param {number} n | |
| * @returns {number} | |
| */ | |
| function fibonacci(n) { | |
| let previus = 0,next = 1; | |
| for(let i = 0; i<n; i++) { | |
| next = previus + next; | |
| previus = next - previus; | |
| } | |
| return previus; | |
| } | |
| // Проверка | |
| console.log('3 ->', fibonacci(3)); // 2 | |
| console.log('7 ->', fibonacci(7)); // 13 | |
| /** | |
| * Релизуйте сортировку массива | |
| * @param {any[]} values сортируемый массив | |
| * @returns {any[]} | |
| */ | |
| function sort(values) { | |
| return values.sort() | |
| } | |
| // Проверка | |
| console.log(sort([7, 2, 99, 5, 1, 3, 4, -1])); // [-1, 1, 2, 3, 4, 5, 7, 99] | |
| /** | |
| * Перенос нулей в конец массива | |
| * @param {number[]} input | |
| * @return {number[]} | |
| */ | |
| function zsort(input) { | |
| console.log(input) | |
| let j = 0; | |
| for(let i = 0 ; i<input.length; i++){ | |
| if(input[i] !== 0){ | |
| [input[i], input[j]] = [input[j], input[i]] ; | |
| j++; | |
| } | |
| } | |
| return input; | |
| } | |
| // Проверка | |
| console.log(zsort([1, 0, 2, 3, 0, 4, 0])); // [1, 2, 3, 4, 0, 0, 0] | |
| /** | |
| * Написать функцию получения простых чисел | |
| */ | |
| const sum = (n) => { | |
| const nums = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]; | |
| return nums.slice(0, Math.max( 0, Math.min(n, nums.length) ) ).join(', '); | |
| }; | |
| // Проверка | |
| console.log("result:", sum(40)); | |
| /** | |
| * Получения массива уникальных значений | |
| * @param {number[]} values | |
| * @return {*} | |
| */ | |
| function uniq(values) { | |
| values = values.sort( (a, b) => { return a*1 - b*1;} ); | |
| let res = [values[0]]; | |
| for (let i = 1; i < values.length; i++) { | |
| if (values[i-1] !== values[i]) { | |
| res.push(values[i]); | |
| } | |
| } | |
| return res; | |
| } | |
| // Проверка | |
| console.log(uniq([2, 3, 1, 2, 1, 5, 6, 3, 1, 8, 5])); | |
| /** | |
| * Реализовать RLE-сжатие: AAAB -> A3B, BCCDDDAXXXX -> BC2D3AX4 | |
| * @param {string} value | |
| * @return {string} | |
| */ | |
| function rle(value) { | |
| let count = 0; | |
| let result = ''; | |
| for (let i = 0; i < value.length; i++) { | |
| let current = value.charAt(i); | |
| let next = value.charAt(i + 1); | |
| if (current === next) { | |
| count++; | |
| } | |
| else { | |
| result += current; | |
| if (count > 0) { | |
| result += count + 1; | |
| } | |
| count = 0; | |
| } | |
| } | |
| return result; | |
| } | |
| // Проверка | |
| console.log(rle('AVVVBBBVVXDHJFFFFDDDDDDHAAAAJJJDDSLSSSDDDD')); | |
| /** | |
| * Реализовать метод `.delay` | |
| */ | |
| Function.prototype.delay = function (time) { | |
| setTimeout(this, time) | |
| }; | |
| foo.delay(300); | |
| function foo() { | |
| console.log("Wow!"); | |
| } | |
| /** | |
| * Сейчас console выводит "undefined", нужно это исправить | |
| */ | |
| function Bomb(message, delay) { | |
| this.message = message; | |
| setTimeout(this.blowUp.bind(this), delay * 1000); // взрываем через delay sec | |
| } | |
| Bomb.prototype.blowUp = function () { | |
| console.log(this.message); | |
| }; | |
| new Bomb("Allahu akbar!", .5); | |
| /** | |
| * Найти пересечение двух массивов | |
| * @param {number[]} left | |
| * @param {number[]} right | |
| * @return {number[]} | |
| */ | |
| function intersection(left, right) { | |
| let result = []; | |
| for (let i of left){ | |
| for (let j of right) { | |
| if (i === j) { | |
| result.push(i); | |
| } | |
| } | |
| return [...new Set(result)]; | |
| } | |
| // Проверка | |
| console.log(intersection( | |
| [1, 2, 3, 4, 5], | |
| [2, 8, 3] | |
| )); | |
| /** | |
| * Реализовать функцию для формирования дерева категорий | |
| * | |
| * @param {[{title: string, left: number, right: number}]} inputData | |
| * @return {string} | |
| */ | |
| function getCategoriesAsHTML(inputData) { | |
| for (let i=0; i < inputData.length; i++){ | |
| const thing = | |
| `<div> | |
| <ul> | |
| <li>${inputData[i].title}</li> | |
| <ul> | |
| <li>${inputData[i].left}</li> | |
| <li>${inputData[i].right}</li> | |
| </ul> | |
| </ul> | |
| ` | |
| document.body.insertAdjacentHTML('beforebegin', thing); | |
| } | |
| container.style.display = 'none'; | |
| } | |
| var container = document.getElementById('result-container'); | |
| container.innerHTML = getCategoriesAsHTML(getInputData()); | |
| // <ul> | |
| // <li> | |
| // Одежда | |
| // <ul> | |
| // <li> | |
| // Мужская | |
| // <ul> | |
| // <\!-- И так далее --> | |
| // </ul> | |
| // </li> | |
| // </ul> | |
| // Входные данные, их трогать не надо | |
| function getInputData() { | |
| return [ | |
| { | |
| title: "Одежда", | |
| left: 1, | |
| right: 22 | |
| }, | |
| { | |
| title: "Мужская", | |
| left: 2, | |
| right: 9 | |
| }, | |
| { | |
| title: "Женская", | |
| left: 10, | |
| right: 21 | |
| }, | |
| { | |
| title: "Костюмы", | |
| left: 3, | |
| right: 8 | |
| }, | |
| { | |
| title: "Платья", | |
| left: 11, | |
| right: 16 | |
| }, | |
| { | |
| title: "Юбки", | |
| left: 17, | |
| right: 18 | |
| }, | |
| { | |
| title: "Блузы", | |
| left: 19, | |
| right: 20 | |
| }, | |
| { | |
| title: "Брюки", | |
| left: 4, | |
| right: 5 | |
| }, | |
| { | |
| title: "Жакеты", | |
| left: 6, | |
| right: 7 | |
| }, | |
| { | |
| title: "Вечерние", | |
| left: 12, | |
| right: 13 | |
| }, | |
| { | |
| title: "Летние", | |
| left: 14, | |
| right: 15 | |
| } | |
| ]; | |
| } | |
| /** | |
| * Проверка на сбалансированность фигурных скобкок | |
| * @param {string} input | |
| * @return {boolean} | |
| */ | |
| function isBalanced(input) { | |
| let open = '{'; | |
| let close = '}'; | |
| let countOpen = 0; | |
| let countClose = 0; | |
| for (let i of input){ | |
| if(i === strOpen){ | |
| countOpen++; | |
| } | |
| if(i === strClose){ | |
| countClose++; | |
| } | |
| } | |
| if(countOpen === countClose){ | |
| return true; | |
| } else{ | |
| return false; | |
| } | |
| } | |
| // Проверка | |
| console.log('balanced:', isBalanced('{{}{}}{}')); // true | |
| console.log('not balanced:', isBalanced('{}{{}')); // false | |
| /** | |
| * Является ли строка палиндромом | |
| * @param {string} value | |
| * @return {boolean} | |
| */ | |
| function isPalindrome(value) { | |
| value = value.toLowerCase().replace(/ /g, '');; | |
| let strReverse = value.split('').reverse().join(''); | |
| if (value === strReverse){ | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| } | |
| console.log(isPalindrome('abcd')); // false | |
| console.log(isPalindrome('A man a plan a canal Panama'));// true | |
| </script></body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Напишите функцию, которая возвращает n-ую запись в последовательности, | |
| * где n — это число, которое вы передаёте в качестве аргумента функции. | |
| * @param {number} n | |
| * @returns {number} | |
| */ | |
| function fibonacci(n) { | |
| let previus = 0,next = 1; | |
| for(let i = 0; i<n; i++) { | |
| next = previus + next; | |
| previus = next - previus; | |
| } | |
| return previus; | |
| } | |
| // Проверка | |
| console.log('3 ->', fibonacci(3)); // 2 | |
| console.log('7 ->', fibonacci(7)); // 13 | |
| /** | |
| * Релизуйте сортировку массива | |
| * @param {any[]} values сортируемый массив | |
| * @returns {any[]} | |
| */ | |
| function sort(values) { | |
| return values.sort() | |
| } | |
| // Проверка | |
| console.log(sort([7, 2, 99, 5, 1, 3, 4, -1])); // [-1, 1, 2, 3, 4, 5, 7, 99] | |
| /** | |
| * Перенос нулей в конец массива | |
| * @param {number[]} input | |
| * @return {number[]} | |
| */ | |
| function zsort(input) { | |
| console.log(input) | |
| let j = 0; | |
| for(let i = 0 ; i<input.length; i++){ | |
| if(input[i] !== 0){ | |
| [input[i], input[j]] = [input[j], input[i]] ; | |
| j++; | |
| } | |
| } | |
| return input; | |
| } | |
| // Проверка | |
| console.log(zsort([1, 0, 2, 3, 0, 4, 0])); // [1, 2, 3, 4, 0, 0, 0] | |
| /** | |
| * Написать функцию получения простых чисел | |
| */ | |
| const sum = (n) => { | |
| const nums = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]; | |
| return nums.slice(0, Math.max( 0, Math.min(n, nums.length) ) ).join(', '); | |
| }; | |
| // Проверка | |
| console.log("result:", sum(40)); | |
| /** | |
| * Получения массива уникальных значений | |
| * @param {number[]} values | |
| * @return {*} | |
| */ | |
| function uniq(values) { | |
| values = values.sort( (a, b) => { return a*1 - b*1;} ); | |
| let res = [values[0]]; | |
| for (let i = 1; i < values.length; i++) { | |
| if (values[i-1] !== values[i]) { | |
| res.push(values[i]); | |
| } | |
| } | |
| return res; | |
| } | |
| // Проверка | |
| console.log(uniq([2, 3, 1, 2, 1, 5, 6, 3, 1, 8, 5])); | |
| /** | |
| * Реализовать RLE-сжатие: AAAB -> A3B, BCCDDDAXXXX -> BC2D3AX4 | |
| * @param {string} value | |
| * @return {string} | |
| */ | |
| function rle(value) { | |
| let count = 0; | |
| let result = ''; | |
| for (let i = 0; i < value.length; i++) { | |
| let current = value.charAt(i); | |
| let next = value.charAt(i + 1); | |
| if (current === next) { | |
| count++; | |
| } | |
| else { | |
| result += current; | |
| if (count > 0) { | |
| result += count + 1; | |
| } | |
| count = 0; | |
| } | |
| } | |
| return result; | |
| } | |
| // Проверка | |
| console.log(rle('AVVVBBBVVXDHJFFFFDDDDDDHAAAAJJJDDSLSSSDDDD')); | |
| /** | |
| * Реализовать метод `.delay` | |
| */ | |
| Function.prototype.delay = function (time) { | |
| setTimeout(this, time) | |
| }; | |
| foo.delay(300); | |
| function foo() { | |
| console.log("Wow!"); | |
| } | |
| /** | |
| * Сейчас console выводит "undefined", нужно это исправить | |
| */ | |
| function Bomb(message, delay) { | |
| this.message = message; | |
| setTimeout(this.blowUp.bind(this), delay * 1000); // взрываем через delay sec | |
| } | |
| Bomb.prototype.blowUp = function () { | |
| console.log(this.message); | |
| }; | |
| new Bomb("Allahu akbar!", .5); | |
| /** | |
| * Найти пересечение двух массивов | |
| * @param {number[]} left | |
| * @param {number[]} right | |
| * @return {number[]} | |
| */ | |
| function intersection(left, right) { | |
| let result = []; | |
| for (let i of left){ | |
| for (let j of right) { | |
| if (i === j) { | |
| result.push(i); | |
| } | |
| } | |
| return [...new Set(result)]; | |
| } | |
| // Проверка | |
| console.log(intersection( | |
| [1, 2, 3, 4, 5], | |
| [2, 8, 3] | |
| )); | |
| /** | |
| * Реализовать функцию для формирования дерева категорий | |
| * | |
| * @param {[{title: string, left: number, right: number}]} inputData | |
| * @return {string} | |
| */ | |
| function getCategoriesAsHTML(inputData) { | |
| for (let i=0; i < inputData.length; i++){ | |
| const thing = | |
| `<div> | |
| <ul> | |
| <li>${inputData[i].title}</li> | |
| <ul> | |
| <li>${inputData[i].left}</li> | |
| <li>${inputData[i].right}</li> | |
| </ul> | |
| </ul> | |
| ` | |
| document.body.insertAdjacentHTML('beforebegin', thing); | |
| } | |
| container.style.display = 'none'; | |
| } | |
| var container = document.getElementById('result-container'); | |
| container.innerHTML = getCategoriesAsHTML(getInputData()); | |
| // <ul> | |
| // <li> | |
| // Одежда | |
| // <ul> | |
| // <li> | |
| // Мужская | |
| // <ul> | |
| // <!-- И так далее --> | |
| // </ul> | |
| // </li> | |
| // </ul> | |
| // Входные данные, их трогать не надо | |
| function getInputData() { | |
| return [ | |
| { | |
| title: "Одежда", | |
| left: 1, | |
| right: 22 | |
| }, | |
| { | |
| title: "Мужская", | |
| left: 2, | |
| right: 9 | |
| }, | |
| { | |
| title: "Женская", | |
| left: 10, | |
| right: 21 | |
| }, | |
| { | |
| title: "Костюмы", | |
| left: 3, | |
| right: 8 | |
| }, | |
| { | |
| title: "Платья", | |
| left: 11, | |
| right: 16 | |
| }, | |
| { | |
| title: "Юбки", | |
| left: 17, | |
| right: 18 | |
| }, | |
| { | |
| title: "Блузы", | |
| left: 19, | |
| right: 20 | |
| }, | |
| { | |
| title: "Брюки", | |
| left: 4, | |
| right: 5 | |
| }, | |
| { | |
| title: "Жакеты", | |
| left: 6, | |
| right: 7 | |
| }, | |
| { | |
| title: "Вечерние", | |
| left: 12, | |
| right: 13 | |
| }, | |
| { | |
| title: "Летние", | |
| left: 14, | |
| right: 15 | |
| } | |
| ]; | |
| } | |
| /** | |
| * Проверка на сбалансированность фигурных скобкок | |
| * @param {string} input | |
| * @return {boolean} | |
| */ | |
| function isBalanced(input) { | |
| let open = '{'; | |
| let close = '}'; | |
| let countOpen = 0; | |
| let countClose = 0; | |
| for (let i of input){ | |
| if(i === strOpen){ | |
| countOpen++; | |
| } | |
| if(i === strClose){ | |
| countClose++; | |
| } | |
| } | |
| if(countOpen === countClose){ | |
| return true; | |
| } else{ | |
| return false; | |
| } | |
| } | |
| // Проверка | |
| console.log('balanced:', isBalanced('{{}{}}{}')); // true | |
| console.log('not balanced:', isBalanced('{}{{}')); // false | |
| /** | |
| * Является ли строка палиндромом | |
| * @param {string} value | |
| * @return {boolean} | |
| */ | |
| function isPalindrome(value) { | |
| value = value.toLowerCase().replace(/ /g, '');; | |
| let strReverse = value.split('').reverse().join(''); | |
| if (value === strReverse){ | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| } | |
| console.log(isPalindrome('abcd')); // false | |
| console.log(isPalindrome('A man a plan a canal Panama'));// true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment