Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Dãy con duy nhất trong chuỗi vòng (circular string) bằng JavaScript


Vấn đề

Cho chuỗi vô hạn S là chuỗi lặp lại của "abcdefghijklmnopqrstuvwxyz".

Cần viết hàm JS nhận chuỗi str, đếm số dãy con không rỗng duy nhất của str xuất hiện trong S.

Ví dụ:

const str = "zab";

Kết quả:

const output = 6;

Giải thích:

6 dãy con: "z", "a", "b", "za", "ab", "zab" đều có trong S.

Ví dụ

Mã thực hiện:

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));

Kết quả

Kết quả in ra console:

6