Skip to content

Commit d1320ce

Browse files
committed
fix: lint all .js files
1 parent ecc57af commit d1320ce

10 files changed

+508
-468
lines changed

Boyer-Moore.js

+105-94
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,92 @@
1-
var fs = require('fs');
1+
const fs = require("fs");
22
function Bm(parent, child) {
3-
let baseP = 0;
3+
let baseP = 0;
44

5-
while (true) {
6-
let badC = '';
7-
let goodS = '';
8-
let flag = 0;
9-
for (let i = child.length - 1; i >= 0; i--) {
10-
if (child[i] == parent[baseP + i]) {
11-
flag++;
12-
if (flag == child.length) {
13-
return baseP;
14-
}
15-
} else {
16-
badC = parent[baseP + i];
17-
goodS = child.substring(i + 1);
5+
while (true) {
6+
let badC = "";
7+
let goodS = "";
8+
let flag = 0;
9+
for (let i = child.length - 1; i >= 0; i--) {
10+
if (child[i] == parent[baseP + i]) {
11+
flag++;
12+
if (flag == child.length) {
13+
return baseP;
14+
}
15+
} else {
16+
badC = parent[baseP + i];
17+
goodS = child.substring(i + 1);
1818

19-
//选择坏字符规则和好后缀规则计算出的较长的后移位数
20-
let b = bad(badC, child, i);
21-
let g = good(goodS, child)
22-
if (b > g) {
23-
baseP += b;
24-
} else {
25-
baseP += g;
26-
}
27-
break;
28-
}
19+
// 选择坏字符规则和好后缀规则计算出的较长的后移位数
20+
const b = bad(badC, child, i);
21+
const g = good(goodS, child);
22+
if (b > g) {
23+
baseP += b;
24+
} else {
25+
baseP += g;
2926
}
30-
// console.log(baseP);
31-
if (baseP > parent.length - child.length && baseP < parent.length) baseP = parent.length - child.length; //防止加过的情况
32-
if (baseP == parent.length ) return -1;
27+
break;
28+
}
29+
}
30+
// console.log(baseP);
31+
if (baseP > parent.length - child.length && baseP < parent.length) {
32+
baseP = parent.length - child.length; // 防止加过的情况
3333
}
34+
if (baseP == parent.length) return -1;
35+
}
3436
}
3537

3638
function bad(badC, child, i) {
37-
let sub = child.substring(0, i + 1); //去除好后缀
38-
return i - sub.lastIndexOf(badC);
39+
const sub = child.substring(0, i + 1); // 去除好后缀
40+
return i - sub.lastIndexOf(badC);
3941
}
4042

4143
function good(goodS, child) {
42-
if (goodS == "") return 0;
43-
//最长的好后缀至在字串中出现了一次
44-
if (child.lastIndexOf(goodS) == child.indexOf(goodS)) {
45-
let tmp = "";
46-
for (let i = 1; i < goodS.length; i++) {
47-
tmp = goodS.slice(i);
48-
if (child.indexOf(tmp) == 0) {
49-
let str = child.slice(0, child.length - goodS.length);
50-
let newChild = str + child;
51-
return newChild.length - goodS.length;
52-
}
53-
}
54-
return child.length;
55-
} else
56-
//最长的好后缀至在字串中出现了多次
57-
{
58-
let str = child.slice(0, child.length - goodS.length); //去除字串末尾的最长好后缀
59-
let lastIndex = str.lastIndexOf(goodS) + goodS.length - 1; //最长好后缀的最后一个字符上一次出现的位置
60-
return goodS.length - lastIndex;
44+
if (goodS == "") return 0;
45+
// 最长的好后缀至在字串中出现了一次
46+
if (child.lastIndexOf(goodS) == child.indexOf(goodS)) {
47+
let tmp = "";
48+
for (let i = 1; i < goodS.length; i++) {
49+
tmp = goodS.slice(i);
50+
if (child.indexOf(tmp) == 0) {
51+
const str = child.slice(0, child.length - goodS.length);
52+
const newChild = str + child;
53+
return newChild.length - goodS.length;
54+
}
6155
}
56+
return child.length;
57+
} else {
58+
// 最长的好后缀至在字串中出现了多次
59+
const str = child.slice(0, child.length - goodS.length); // 去除字串末尾的最长好后缀
60+
const lastIndex = str.lastIndexOf(goodS) + goodS.length - 1; // 最长好后缀的最后一个字符上一次出现的位置
61+
return goodS.length - lastIndex;
62+
}
6263
}
6364

6465
function randomString(len) {
65-
  len = len || 32;
66-
  var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
67-
  var maxPos = $chars.length;
68-
  var pwd = '';
69-
  for (i = 0; i < len; i++) {
70-
    pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
71-
  }
72-
  return pwd;
66+
len = len || 32;
67+
const $chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678";
68+
const maxPos = $chars.length;
69+
let pwd = "";
70+
for (i = 0; i < len; i++) {
71+
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
72+
}
73+
return pwd;
7374
}
7475

75-
76-
77-
function Bf(parent,child){
78-
for(let i = 0;i < parent.length; i++){
79-
let flag = 0;
80-
for(let j = 0; j < child.length; j++){
81-
if(parent[i] == child[j]){
82-
i++;
83-
flag++;
84-
}else{
85-
break;
86-
}
87-
}
88-
if(flag == child.length) return i-child.length;
76+
function Bf(parent, child) {
77+
for (let i = 0; i < parent.length; i++) {
78+
let flag = 0;
79+
for (let j = 0; j < child.length; j++) {
80+
if (parent[i] == child[j]) {
81+
i++;
82+
flag++;
83+
} else {
84+
break;
85+
}
8986
}
90-
return -1;
87+
if (flag == child.length) return i - child.length;
88+
}
89+
return -1;
9190
}
9291
// fs.writeFile('str.txt', randomString(30000000), function (error) {
9392
// if (error) {
@@ -110,25 +109,37 @@ function Bf(parent,child){
110109
// }
111110
// })
112111

113-
fs.readFile('str.txt', function (error, data) {
114-
if (error) {
115-
console.log('读取文件失败了')
116-
} else {
117-
console.log(data.toString().length);
118-
var startTime = new Date();
119-
console.log("BM:", Bm(data.toString(), "jc3TrXacMDytprhhbjY6WtEdFjkpkR5ARJxSWrPbp2fBjDYPzmMdYQPGGPDsPzPtAS446Gd3iMENswYBW5NcFTpBF587abHsyYjXD7ZsHrce2FRbrkkpFeBGf6Z7XFpdHhp58zziGeBRW5WCPrGBC8ecXTb3EyYyNKPypekFEEtWEfWdbkeSGDZfFiY2ESEFyKsb5pXmWBcnJAaCy2iWpM4Nm3HZ8etk2dQjexC7nKi2AAiy8JhpzPbjyZznxSKFDnxt5fK54aQw4GMSE2xycx6QTyxD6C5iZjQy4tDx24XB5krXw6bFPMRaTfZ6dXJXWZmRp6rhNeEFZdymejHDW2hFTibPehsmmj4wDFADwwmM6ds4YcEQxxMNT4RPW4jrtRRMTjabW3JisY2H2nRht6B4yHyrKC4xKQ4bXtC47rNt8jQwWMyQGsQtCp7Q4RyNb4y5mKHHCXaMfccPJinyEiJyaRxw3azJcaykmanYxkRK7njXS6We"))
120-
var endTime = new Date();
121-
console.log("BM Time:", endTime - startTime);
122-
}
123-
})
124-
fs.readFile('str.txt', function (error, data) {
125-
if (error) {
126-
console.log('读取文件失败了')
127-
} else {
128-
console.log(data.toString().length);
129-
var startTime = new Date();
130-
console.log("BF",Bf(data.toString(), "jc3TrXacMDytprhhbjY6WtEdFjkpkR5ARJxSWrPbp2fBjDYPzmMdYQPGGPDsPzPtAS446Gd3iMENswYBW5NcFTpBF587abHsyYjXD7ZsHrce2FRbrkkpFeBGf6Z7XFpdHhp58zziGeBRW5WCPrGBC8ecXTb3EyYyNKPypekFEEtWEfWdbkeSGDZfFiY2ESEFyKsb5pXmWBcnJAaCy2iWpM4Nm3HZ8etk2dQjexC7nKi2AAiy8JhpzPbjyZznxSKFDnxt5fK54aQw4GMSE2xycx6QTyxD6C5iZjQy4tDx24XB5krXw6bFPMRaTfZ6dXJXWZmRp6rhNeEFZdymejHDW2hFTibPehsmmj4wDFADwwmM6ds4YcEQxxMNT4RPW4jrtRRMTjabW3JisY2H2nRht6B4yHyrKC4xKQ4bXtC47rNt8jQwWMyQGsQtCp7Q4RyNb4y5mKHHCXaMfccPJinyEiJyaRxw3azJcaykmanYxkRK7njXS6We"))
131-
var endTime = new Date();
132-
console.log("BF Time:",endTime - startTime);
133-
}
134-
})
112+
fs.readFile("str.txt", function (error, data) {
113+
if (error) {
114+
console.log("读取文件失败了");
115+
} else {
116+
console.log(data.toString().length);
117+
const startTime = new Date();
118+
console.log(
119+
"BM:",
120+
Bm(
121+
data.toString(),
122+
"jc3TrXacMDytprhhbjY6WtEdFjkpkR5ARJxSWrPbp2fBjDYPzmMdYQPGGPDsPzPtAS446Gd3iMENswYBW5NcFTpBF587abHsyYjXD7ZsHrce2FRbrkkpFeBGf6Z7XFpdHhp58zziGeBRW5WCPrGBC8ecXTb3EyYyNKPypekFEEtWEfWdbkeSGDZfFiY2ESEFyKsb5pXmWBcnJAaCy2iWpM4Nm3HZ8etk2dQjexC7nKi2AAiy8JhpzPbjyZznxSKFDnxt5fK54aQw4GMSE2xycx6QTyxD6C5iZjQy4tDx24XB5krXw6bFPMRaTfZ6dXJXWZmRp6rhNeEFZdymejHDW2hFTibPehsmmj4wDFADwwmM6ds4YcEQxxMNT4RPW4jrtRRMTjabW3JisY2H2nRht6B4yHyrKC4xKQ4bXtC47rNt8jQwWMyQGsQtCp7Q4RyNb4y5mKHHCXaMfccPJinyEiJyaRxw3azJcaykmanYxkRK7njXS6We"
123+
)
124+
);
125+
const endTime = new Date();
126+
console.log("BM Time:", endTime - startTime);
127+
}
128+
});
129+
fs.readFile("str.txt", function (error, data) {
130+
if (error) {
131+
console.log("读取文件失败了");
132+
} else {
133+
console.log(data.toString().length);
134+
const startTime = new Date();
135+
console.log(
136+
"BF",
137+
Bf(
138+
data.toString(),
139+
"jc3TrXacMDytprhhbjY6WtEdFjkpkR5ARJxSWrPbp2fBjDYPzmMdYQPGGPDsPzPtAS446Gd3iMENswYBW5NcFTpBF587abHsyYjXD7ZsHrce2FRbrkkpFeBGf6Z7XFpdHhp58zziGeBRW5WCPrGBC8ecXTb3EyYyNKPypekFEEtWEfWdbkeSGDZfFiY2ESEFyKsb5pXmWBcnJAaCy2iWpM4Nm3HZ8etk2dQjexC7nKi2AAiy8JhpzPbjyZznxSKFDnxt5fK54aQw4GMSE2xycx6QTyxD6C5iZjQy4tDx24XB5krXw6bFPMRaTfZ6dXJXWZmRp6rhNeEFZdymejHDW2hFTibPehsmmj4wDFADwwmM6ds4YcEQxxMNT4RPW4jrtRRMTjabW3JisY2H2nRht6B4yHyrKC4xKQ4bXtC47rNt8jQwWMyQGsQtCp7Q4RyNb4y5mKHHCXaMfccPJinyEiJyaRxw3azJcaykmanYxkRK7njXS6We"
140+
)
141+
);
142+
const endTime = new Date();
143+
console.log("BF Time:", endTime - startTime);
144+
}
145+
});

Fully-arranged.js

+36-36
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
1-
//给定一个没有重复数字的序列,返回其所有可能的全排列。
1+
// 给定一个没有重复数字的序列,返回其所有可能的全排列。
22
/**
33
* @param {number[]} nums
44
* @return {number[][]}
55
*/
6-
var permute = function (nums) {
7-
var res = [];
8-
var tmp = []
9-
return Recursive(res, tmp, nums, 0, nums.length - 1);
6+
const permute = function (nums) {
7+
const res = [];
8+
const tmp = [];
9+
return Recursive(res, tmp, nums, 0, nums.length - 1);
1010
};
1111

12-
var Recursive = function (res, tmp, arr, start, end) {
13-
if (start == end) {
14-
tmp = [...arr]; //用另一个变量来存储每一次想要的结果,避免因为递归所有的结果都一样
15-
res.push(tmp);
16-
return res;
17-
} else {
18-
for (let i = start; i <= end; i++) {
19-
if (!swipAccepted(arr, start, i)) {
20-
continue;
21-
}
22-
swip(arr, start, i);
23-
Recursive(res, tmp, arr, start + 1, end);
24-
swip(arr, start, i);//保证序列进入下一次循环时状态的一致性, 对序列进行还原操作
25-
}
26-
return res;
12+
const Recursive = function (res, tmp, arr, start, end) {
13+
if (start == end) {
14+
tmp = [...arr]; // 用另一个变量来存储每一次想要的结果,避免因为递归所有的结果都一样
15+
res.push(tmp);
16+
return res;
17+
} else {
18+
for (let i = start; i <= end; i++) {
19+
if (!swipAccepted(arr, start, i)) {
20+
continue;
21+
}
22+
swip(arr, start, i);
23+
Recursive(res, tmp, arr, start + 1, end);
24+
swip(arr, start, i); // 保证序列进入下一次循环时状态的一致性, 对序列进行还原操作
2725
}
28-
}
29-
var swip = (arr, i, j) => {
30-
if(i == j) return;
31-
let tmp = arr[i];
32-
arr[i] = arr[j];
33-
arr[j] = tmp;
34-
return arr;
35-
}
26+
return res;
27+
}
28+
};
29+
const swip = (arr, i, j) => {
30+
if (i == j) return;
31+
const tmp = arr[i];
32+
arr[i] = arr[j];
33+
arr[j] = tmp;
34+
return arr;
35+
};
3636

37-
var swipAccepted = (array, start, end) => {
38-
for (let i = start; i < end; i++) {
39-
if (array[i] == array[end]) {
40-
return false;
41-
}
37+
const swipAccepted = (array, start, end) => {
38+
for (let i = start; i < end; i++) {
39+
if (array[i] == array[end]) {
40+
return false;
4241
}
43-
return true;
44-
}
42+
}
43+
return true;
44+
};
4545

46-
permute([1, 2, 3]);
46+
permute([1, 2, 3]);

0 commit comments

Comments
 (0)