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

Kiểm tra chuỗi hoàn toàn cấu thành từ cùng một chuỗi con trong JavaScript


Cần viết hàm JavaScript nhận chuỗi. Trả về true/false dựa trên việc đầu vào có bao gồm chuỗi ký tự lặp lại hay không.

Độ dài chuỗi luôn lớn hơn 1 và chuỗi con phải lặp lại ít nhất một lần.

Ví dụ:

  • "aa" trả về true vì chứa hai chuỗi "a"
  • "aaa" trả về true vì chứa ba chuỗi "a"
  • "abcabcabc" trả về true vì chứa ba chuỗi "abc"
  • "aba" trả về false vì cần ít nhất hai chuỗi con giống nhau và không có gì thêm
  • "ababa" trả về false vì "ab" xuất hiện hai lần nhưng "a" thừa nên false

Ví dụ

const checkCombination = (str = '') => { 
    if( str.length==1 ) { 
        return true; 
    }; 
    for(let i = 1; i <= str.length / 2; i++){ 
        if(str.length % i !== 0){ 
            continue; 
        } 
        const sub = str.substring(0, i); 
        if(isRepeating(sub, str)){ 
            return true; 
        }; 
    }; 
    return false; 
} 
const isRepeating = (sub, str) => { 
    if(str.length > sub.length){ 
        let left = str.substring(0,sub.length); 
        let right = str.substring(sub.length, str.length); 
        return left===sub && isRepeating(sub,right); 
    }; 
    return str === sub; 
} 
console.log(checkCombination('aa')); 
console.log(checkCombination('aaa')); 
console.log(checkCombination('abcabcabc')); 
console.log(checkCombination('aba')); 
console.log(checkCombination('ababa'));

Kết quả

Điều này sẽ tạo ra đầu ra sau:

true true true false false