重复叠加字符串匹配

August 16, 2019 · View on GitHub

js实现

/**
 * @param {string} A
 * @param {string} B
 * @return {number}
 */
var repeatedStringMatch = function(A, B) {
    var ans = 0, lengthA = A.length, lengthB = B.length - 1, i, j, check;

    for (i = 0; i < lengthA; i++) {
        j = 0;
        check = true;
        if (A[i] !== B[j]) continue;
        while(j < lengthB) {
            j++;
            if (A[(i + j) % lengthA] !== B[j]) {
                check = false;
                break;
            }
        }
        if (check) {
            ans = Math.ceil((i + j + 1) / lengthA);
            break;
        }
    }

    return ans === 0 ? -1 : ans;
};
/**
 * @param {string} A
 * @param {string} B
 * @return {number}
 */
var repeatedStringMatch = function(A, B) {
    var length = B.length, i, q = 0, S = '';
    
    while(S.length < length) {
        S += A;
        q++;
    }
    if (S.indexOf(B) > -1) return q;
    S += A;
    if (S.indexOf(B) > -1) return q + 1;
    return -1;
};