1071. 字符串的最大公因子
分析
-
判断条件:
- 首先,字符串
str1
能否被str2
整除以及str2
能否被str1
整除的关键条件是:str1 + str2 == str2 + str1
- 如果这个条件不成立,则不存在一个字符串能够同时整除这两个字符串,返回空字符串
- 首先,字符串
-
最大公因子:
- 如果
str1 + str2 == str2 + str1
,则可以根据字符串的长度来进一步判断最大公因子 - 假设
str1
的长度为n1
,str2
的长度为n2
,那么最大公因子字符串的长度应该是gcd(n1, n2)
- 利用
gcd
函数计算出n1
和n2
的最大公因子,取str1
或str2
的前gcd(n1, n2)
个字符作为最大公因子字符串
- 如果
时间复杂度
- 字符串比较的时间复杂度是
O(n1 + n2)
gcd(n1, n2)
时间复杂度:O(log min(n1, n2))
总时间复杂度是 O(n1 + n2)
空间复杂度
空间复杂度 O(n1 + n2)
C++代码
|
|