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++代码
|
|