1071. 字符串的最大公因子
题目要求:
对于字符串 S 和 T,只有在 S = T + … + T(T 自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。
返回***最长字符串 X***,要求满足 X 能除尽 str1 且 X 能除尽 str2。
解题思路:
- 遍历每个子字符串(最短的那个字符串的子字符串);
- 判断每个子字符串能否除尽两个字符串(直接替换原始字符串,看是否可变为空字符串);
- 直到遍历完所有的子字符串;返回符合要求的子字符串。
题解代码:
class Solution:
def gcdOfStrings(self, str1: str, str2: str) -> str:
#计算两个字符串的长度
m = len(str1)
n = len(str2)
#建立一个空字符串,用来保存满足条件的最长字符串
list1 = ""
#判断两个字符串的大小
if m == n:
#如果两个字符串相等,则符合条件的最长字符串就为本身
if str1 == str2:
list1 = str1
#如果长度不相等
else:
#遍历最短长度次数
for i in range(min(m,n)+1):
#判断两个字符串在其遍历的子字符串下,替代后是否为空。空则表明这个字符串可以作为满足要求的公因子
if str2.replace(str2[:i],"") == "" and str1.replace(str2[:i],"") == "":
list1= str2[:i]
return list1
(“真的,你要相信:越奋斗,越想奋斗。
”FIGHTING. . . .)