程式語言 - LeetCode - C - 1071. Greatest Common Divisor of Strings



參考資訊:
https://www.cnblogs.com/grandyang/p/14537276.html

題目:


解答:

int gcd(int a, int b)
{
    if (b == 0) {
        return a;
    }

    return gcd(b, a % b);
}

char* gcdOfStrings(char* str1, char* str2)
{
    int len1 = strlen(str1);
    int len2 = strlen(str2);
    char *t1 = calloc(len1 + len2 + 1, sizeof(char));
    char *t2 = calloc(len1 + len2 + 1, sizeof(char));

    strcpy(t1, str1);
    strcat(t1, str2);

    strcpy(t2, str2);
    strcat(t2, str1);

    if (strcmp(t1, t2)) {
        return "";
    }

    str1[gcd(len1, len2)] = 0;
    return str1;
}