-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprocessBar.js
More file actions
61 lines (46 loc) · 1.34 KB
/
processBar.js
File metadata and controls
61 lines (46 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const test = require('./testCase');
const unqiueValues = function unqiueValues(arr) {
return arr.filter((item, index) => {
return arr.indexOf(item) === index
});
}
const superFunctional = function superFunctional(str) {
let p = str.length;
let d = (unqiueValues(str.split(''))).length;
return BigInt(Math.pow(p, d) % (Math.pow(10,9)+ 7));
}
const subString = function subString(str, n)
{
let result = [];
// Pick starting point
for (len = 1; len <= n; len++)
{
// Pick ending point
for (let i = 0; i <= n - len; i++)
{
// Print characters from current
// starting point to current ending
// point.
let j = i + len - 1;
res = '';
for (let k = i; k <= j; k++)
res +=(str[k]);
result.push(res);
}
}
return result;
}
function superFunctionalStrings(s) {
/*
* Write your code here.
*/
let result = unqiueValues((subString(s, s.length)));
let sum = 0;
// console.log(result.length);
for (let item of result) {
sum += superFunctional(item);
}
return sum;
}
console.log(subString(test.test[0],test.test[0].length))
// console.log(superFunctionalStrings(test.test[0]));