- Related Questions & Answers
- Python code to print common characters of two Strings in alphabetical order
- Print common characters of two Strings in alphabetical order in C++
- Count common subsequence in two strings in C++
- Count common characters in two strings in C++
- Java code to print common characters of two Strings in alphabetical order
- Accessing Values of Strings in Python
- How to find the longest common substring from more than two strings in Python?
- Lowest Common Ancestor of Deepest Leaves in Python
- Common string operations in Python
- Longest Common Prefix in Python
- How to find the greatest number in a list of numbers in Python?
- Find common elements in list of lists in Python
- Groups of Special-Equivalent Strings in Python
- Lowest Common Ancestor of a Binary Tree in Python
- Python Program for Common Divisors of Two Numbers

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

Suppose there are two strings A and B. We can say that A is divisible by B, when A is created by concatenating B one or more times. So if A = “abcabc”, and B = “abc”, then A is divisible by B. In this section, we will see what is the greatest common divisor of a String. So return the largest string that divides both of the strings. So if two strings are “ABABAB”, and “ABAB”, then GCD will be “AB”

To solve this, we will follow these steps −

- temp := shorter string between A and B
- m := length of temp
- x := 1
- res is an array and insert “” into the res
- while A and B has substring of size x, then add the substring into the res, and increase x by 1
- finally return the last element in the res array.

Let us see the following implementation to get better understanding −

class Solution(object): def gcdOfStrings(self, str1, str2): if len(str1)<=len(str2): temp = str1 else: temp = str2 m = len(temp) x = 1 res=[""] while x<=m: if m%x==0 and temp[:x] * (len(str1)//x) == str1 and temp[:x] * (len(str2)//x) == str2: res.append(temp[:x]) x+=1 return res[-1] ob1 = Solution() print(ob1.gcdOfStrings("ABABAB","ABAB"))

"ABABAB" "ABAB"

AB

Advertisements