For two strings s and t, we say “t divides s” if and only if s = t + … + t (i.e., t is concatenated with itself one or more times).
Given two strings str1 and str2, return the largest string x such that x divides both str1 and str2.
Example 1:
1 | Input: str1 = "ABCABC", str2 = "ABC" |
Example 2:
1 | Input: str1 = "ABABAB", str2 = "ABAB" |
Example 3:
1 | Input: str1 = "LEET", str2 = "CODE" |
Constraints:
1 | 1 <= str1.length, str2.length <= 1000 |
Approach
1 | Use recursion to go thourh the longer arrray with the shorter array. |
Algorithm
1 | 1. If the first letters of both are not the same, they don't have the common substring. |
Implementation
1 | char * gcdOfStrings(char * str1, char * str2){ |