leetcode 1071. As grandes corda cordas divisor comum de GCD euclidianas
leetcode 2020 01 de março questão perfurador diária
euclidianaveja https://blog.csdn.net/weixin_43973433/article/details/105007066
Título:
Para strings S e T, apenas a S = T + ... + T ( T ligado a si próprio uma ou mais vezes), identificamos "T S pode ser divisível." Retorna a mais longa seqüência de X, X pode cumprir as exigências, e X pode ser divisível str2 str1 divisível.
Exemplo 1:
Entrada: seq1 = "abcabc", seq2 = "ABC"
Saída: "ABC"
Exemplo 2:
Entrada: seq1 = "ABABAB", seq2 = "ABAB"
Saída: "AB"
Exemplo 3:
Entrada: seq1 = " LEET "str2 =" CODE "
saída": "
Dica:
. 1 <= str1.length <= 1000
1 <= str2.length <= 1000.
Str1 [I] e str2 [i] maiúsculas letras
ideias:
- Se as duas cadeias têm o denominador comum, então a + b b + a ==
- Dois comprimento da corda é igual ao maior divisor comum entre o comprimento do segmento duas convenções da corda
código:
class Solution(object):
def gcdOfStrings(self, str1, str2):
"""
:type str1: str
:type str2: str
:rtype: str
"""
# 如果两个字符串有最大公约数,则a+b == b+a
if str1+str2 != str2+str1:
return ""
# 两字符串最大公约段的长度等于两字符串长度的最大公约数
# 辗转相除法
def gcd(m,n):
return gcd(n,m%n) if n else m
return str1[:gcd(len(str1),len(str2))]
Este blog é um trabalho original, saudou a orientação, reproduzido, por favor indique a fonte, anexar um link para este artigo, obrigado!