Greatest Common Divisor of Strings

For two strings s and t, we say "t divides s" if and only if s = t + t + t + ... + t + t, meaning 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
Inputstr1 = "ABCABC", str2 = "ABC"
Output"ABC"
The string "ABC" can be repeated to form both "ABCABC" and "ABC", and it is the largest such string.
Example 2
Inputstr1 = "ABABAB", str2 = "ABAB"
Output"AB"
The string "AB" can be repeated to form both "ABABAB" and "ABAB", and it is the largest such string.

Constraints

  • 1 <= str1.length, str2.length <= 1000
  • str1 and str2 consist of English uppercase letters.

Asked at 8 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate