1. childStr 为 abc,parentStr 为 wrlbgcab,返回 true,因为 wrlbgcab 包含了 abc 的一个排列 cab;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function isTrue(childStr, child) {
for (var i = 0; i < child.length; i++) {
if (!childStr.includes(child[i])) {
return false;
}
}
return true;
}
function getChild(parentStr, childStr) {
for (let i = 0; i < parentStr.length; i++) {
if (childStr.includes(parentStr[i])) {
let child = parentStr.slice(i, i + childStr.length);
if (childStr.length === child.length) {
let res = isTrue(childStr, child);
if (res) return true;
}
}
}
return false;
}
console.log(2222, getChild("wrlbgcab", "bcaw")); // false
console.log(2222, getChild("wrlbgcab", "bca")); // true

2. 斐波那契数列

斐波那契数列就是从 0 和 1 开始,后面的数都是前两个数之和 0,1,1,2,3,5,8,13,21,34,55,89….

1
2
3
4
5
6
7
8
9
10
function lib(n) {
var arr = new Array(n + 1).fill(null);
arr[0] = 0;
arr[1] = 1;
for (let i = 2; i < arr.length; i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
return arr[n];
}
lib(10); // 55