Skip to content

Commit a6fa68b

Browse files
homework_8
1 parent be38ff9 commit a6fa68b

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Home work 8</title>
6+
</head>
7+
<body>
8+
9+
<script src="src/main.js"></script>
10+
</body>
11+
</html>
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
//Task1
2+
function solution1() {
3+
let str = '';
4+
return function (someString) {
5+
return str = str + someString + ' ';
6+
};
7+
};
8+
9+
let stringBuffer = solution1();
10+
11+
console.log(stringBuffer('Замыкания')); // Замыкания
12+
console.log(stringBuffer('Использовать нужно')); // Замыкания Использовать нужно
13+
console.log(stringBuffer('Привет')); // Замыкания Использовать нужно Привет вызываем много раз
14+
console.log(stringBuffer('вызываем много раз'));
15+
16+
17+
//Task2
18+
function validBraces(str) {
19+
let arrStr = str.split('');
20+
let openingRound = arrStr.filter(function(elem) {
21+
return elem == '(';
22+
});
23+
let closingRound = arrStr.filter(function(elem) {
24+
return elem == ')';
25+
});
26+
let openingCurly = arrStr.filter(function(elem) {
27+
return elem == '{';
28+
});
29+
let closingCurly = arrStr.filter(function(elem) {
30+
return elem == '}';
31+
});
32+
let openingSquare = arrStr.filter(function(elem) {
33+
return elem == '[';
34+
});
35+
let closingSquare = arrStr.filter(function(elem) {
36+
return elem == ']';
37+
});
38+
if (openingRound.length == closingRound.length &&
39+
openingCurly.length == closingCurly.length &&
40+
openingSquare.length == closingSquare.length) {
41+
return true;
42+
} else {
43+
return false;
44+
};
45+
};
46+
47+
console.log(validBraces('(){}[]')); // => returns true
48+
console.log(validBraces('(}')); // => returns false
49+
console.log(validBraces('[(])')); // => returns false
50+
console.log(validBraces('([{}])')); // => returns true
51+
console.log(validBraces('({[]})')); // => returns true
52+
53+
54+
55+
56+
//Super
57+
function memoiz() {
58+
let cache = {};
59+
let sum = function (num) {
60+
if(num > 1) {
61+
62+
if(cache[num]){
63+
console.log('Значение взято из кэш');
64+
return cache[num];
65+
};
66+
let tmp = num + sum(num - 1);
67+
cache[num] = tmp;
68+
return tmp;
69+
};
70+
console.log('Значение кешировано');
71+
return num;
72+
};
73+
return sum;
74+
};
75+
76+
let sum = memoiz();
77+
console.log(sum(5)); // 15 Значение кешировано
78+
console.log(sum(5)); // 15 Значение взято из кэш
79+
console.log(sum(6)); // 15 Значение взято из кэш
80+
console.log(sum(6));
81+

0 commit comments

Comments
 (0)