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



參考資訊:
https://leetcode.com/studyplan/leetcode-75/
https://github.com/doocs/leetcode/blob/main/solution/1000-1099/1071.Greatest%20Common%20Divisor%20of%20Strings/README_EN.md

題目:


解答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
int gcd(int a, int b)
{
    if(b == 0) {
        return a;
    }
     
    return gcd(b, a % b);
}
 
char* gcdOfStrings(char* str1, char* str2)
{
    int cc = 0;
    int s1_len = strlen(str1);
    int s2_len = strlen(str2);
 
    char *t1 = malloc(s1_len + s2_len + 1);
    char *t2 = malloc(s1_len + s2_len + 1);
 
    strcpy(t1, str1);
    strcat(t1, str2);
 
    strcpy(t2, str2);
    strcat(t2, str1);
 
    if (strcmp(t1, t2)) {
        return "";
    }
 
    cc = gcd(s1_len, s2_len);
    str1[cc] = 0;
    return str1;
}