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

Kiểm tra chuỗi có phải lặp lại chuỗi con trong JavaScript


Vấn đề

Cần viết hàm JS nhận chuỗi, kiểm tra xem chuỗi có thể tạo bằng cách lấy một chuỗi con và nối nhiều bản sao của nó không.

Ví dụ:

const str = 'thisthisthisthis';

Kết quả:

const output = true;

Giải thích:

Chuỗi tạo bằng lặp lại 'this'.

Ví dụ

Mã thực hiện:

const str = 'thisthisthisthis'; const repeatedSubstring = (str = '') => {    const {length} = str;    const checkSubString = ss => {       const m = ss.length;       for (let i = 0; i < length; i += m)          for (let j = 0; j < m; j++)             if (str[i+j] !== ss[j])                return false;       return true;    };    let factor = 2, len;    while (length/factor >= 1){       while (length % factor) factor++;       len = length/factor;       if (checkSubString(str.substring(0,len))){          return true;       };       factor++;    };    return false; }; console.log(repeatedSubstring(str));

Giải thích code:

Thiết lập hàm kiểm tra mẫu chuỗi con. Duyệt các ước số của độ dài chuỗi để tìm mẫu lặp lại khả thi.

Kết quả

Kết quả in ra console:

true