失戀了就專心寫代碼。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 }