失恋了就专心写代码。javascript
今天去深刻学习了一下柯里化,写了个柯里化的装饰器,了解请到https://segmentfault.com/a/11...java
// 虽然实现了,这并非好的实现方式,更好见我上面连接 function plus(a){ function g(b) { if(b === undefined) { return a } a+=b; return g } return g }
// 复杂度为n-m(str1的长度为n,str2的长度为m) function t(str1, str2) { let a = -1 if(!str1.length && str1.length > str2.length) { // 谢谢@JarryChung指出错误 return a }else { /** 这是我旧的代码 let arr_a = str1.split("") let arr_b = str2.split("") const len = arr_b.length-arr_a.length for(let i = 0; i <= len; i++) { // 参考KMP将复杂度下降m,谢谢 @行政 的建议 if(arr_b[i] === arr_a[0] && arr_b.slice(i, i + arr_a.length).join("") === str1) { a = i break } } } */ // 这是 @NrightCc 提出的解法,让我发现了新大陆,跟你们分享一下 const arr = str2.split(str1); if(arr.length>1){ a = arr[0].length } return a }