Vấn đề
Giả sử chúng ta có một S, str. là một chuỗi bao bọc vô hạn của chuỗi -
"abcdefghijklmnopqrstuvwxyz".
Do đó, S sẽ giống như thế này -
"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".
Chúng tôi bắt buộc phải viết một hàm JavaScript có trong str, hãy gọi chuỗi đó là str, làm đối số duy nhất.
-
Hàm của chúng ta sẽ tìm ra có bao nhiêu chuỗi con không trống duy nhất của str có trong S.
-
Hàm của chúng ta cuối cùng sẽ trả về số lượng các chuỗi con không trống khác nhau của str trong chuỗi S.
Ví dụ:nếu đầu vào của hàm là -
const str = "zab";
Sau đó, đầu ra phải là -
const output = 6;
Giải thích đầu ra
Có sáu chuỗi con "z", "a", "b", "za", "ab", "zab" của chuỗi "zab" trong chuỗi S.
Ví dụ
Mã cho điều này sẽ là -
const str = "zab"; const allSubstrings = (str = '') => { const dp = new Array(26).fill(0); dp[str.charCodeAt(0) - 97] = 1; maxCount = 1; for (let i = 1; i < str.length; i++) { if ((str.charCodeAt(i) - str.charCodeAt(i - 1) == 1) || (str.charCodeAt(i) - str.charCodeAt(i - 1) == -25)) { maxCount++; } else { maxCount = 1; } dp[str.charCodeAt(i) - 97] = Math.max(dp[str.charCodeAt(i) - 97], maxCount); } return dp.reduce((item, val) => { return val + item; }) }; console.log(allSubstrings(str));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
6