Python de substring mais comum

Python de substring mais comum
O problema é encontrar a substring mais comum em uma determinada string. A tarefa é pegar duas cordas e encontrar a substring comum mais longa com ou sem repetir caracteres. Em outras palavras, combine a substring mais comum dada na mesma ordem e presente em ambas as strings. Por exemplo, 'Tech' é uma sequência de caracteres dados em 'NextTech', que também é a substring.

O processo para encontrar a subsequência mais comum mais longa:

O processo simples para encontrar a subsequência mais comum é verificar cada caractere da String 1 e encontrar a mesma sequência na String 2, verificando cada caractere da String 2 um por um para ver se alguma substring é comum em ambas as seqüências. Por exemplo, digamos que temos um String 1 'ST1' e String 2 'ST2' com comprimentos A e B, respectivamente. Verifique todas as substâncias de 'st1' e inicie a iteração do 'ST2' para verificar se existe alguma substring de 'st1' como 'st2'. Comece combinando a substring do comprimento 2 e aumentando o comprimento em 1 em cada iteração, subindo para o comprimento máximo das strings.

Exemplo 1:

Este exemplo é sobre encontrar a substring mais comum com caracteres repetidos. O Python fornece métodos internos simples para executar quaisquer funções. No exemplo abaixo, fornecemos a maneira mais simples de encontrar a subsequência mais comum mais longa em 2 strings. Combinando o 'for' e 'while' loops é utilizado para obter a substring comum mais longa em uma string. Dê uma olhada no exemplo dado abaixo:

Def LongComsubs (ST1, ST2):
Ans = 0;
Para um intervalo (Len (ST1)):
Para B em Range (LEN (ST2)):
k = 0;
enquanto ((a + k) < len(st1) and (b + k) < len(st2)
e st1 [a + k] == st2 [b + k]):
k = k + 1;
Ans = max (Ans, K);
retornar Ans;
se __name__ == '__main__':
A = 'Abbaab'
B = 'babaab'
i = len (a)
j = len (b)
Print ('A substring comum mais longa em uma string é', LongComsubs (a, b))

A saída a seguir será produzida após a execução do código acima. Ele encontrará a substring mais comum e fornecerá como saída.

Exemplo 2:

Outra maneira de encontrar a mais longa substring comum é seguir a abordagem iterativa. A 'para' loop é usado para iteração, e uma condição 'se' corresponde à substring comum.

Def LongComsubs (A, B, M, N):
maxlen = 0
endindex = m
Encontre = [[0 para X no intervalo (n + 1)] para y no intervalo (M + 1)]
para i no intervalo (1, m + 1):
para j no intervalo (1, n + 1):
Se a [i - 1] == b [j - 1]:
Encontre [i] [j] = Encontre [i - 1] [j - 1] + 1
Se encontrar [i] [j]> maxlen:
maxlen = encontre [i] [j]
endindex = i
Retornar x [endindex - Maxlen: endindex]
se __name__ == '__main__':
A = 'Abbaab'
B = 'babaab'
i = len (a)
j = len (b)
Print ('A substring comum mais longa em uma string é', LongComsubs (a, b, i, j))

Execute o código acima em qualquer intérprete Python para obter a saída desejada. No entanto, usamos a ferramenta Spyder para executar o programa para encontrar a substring mais comum em uma string. Aqui está a saída do código acima:

Exemplo 3:

Aqui está outro exemplo para ajudá -lo a encontrar a substring comum mais longa em uma string usando codificação Python. Este método é a maneira menor, mais simples e fácil de encontrar a subsequência mais comum mais longa. Dê uma olhada no código de exemplo fornecido abaixo:

Def Common (ST1, ST2):
def _iter ():
Para A, B em Zip (ST1, ST2):
Se A == b:
rendimento a
outro:
retornar
retornar ".JONE (_iter ())
se __name__ == '__main__':
A = 'Abbaab'
B = 'babaab'
Print ('A substring comum mais longa em uma string é', LongComsubs (a, b))

Abaixo você pode encontrar a saída do código fornecido acima

Usando este método, não retornamos a substring comum, mas a duração dessa substring comum. Para ajudá -lo a obter o resultado desejado, mostramos saídas e métodos para obter esses resultados.

A complexidade do tempo e a complexidade do espaço para encontrar a substring comum mais longa

Há algum custo a pagar para executar ou executar qualquer função; A complexidade do tempo é um desses custos. A complexidade do tempo de qualquer função é calculada analisando quanto tempo uma declaração pode levar para executar. Portanto, para encontrar todas as substringas em 'st1', precisamos de O (a^2), onde 'a' é o comprimento de 'st1' e 'o' é o símbolo da complexidade do tempo. No entanto, a complexidade do tempo da iteração e a descoberta se a substring existe em 'st2' ou não é o (m), onde 'm' é o comprimento de 'st2'. Portanto, a complexidade total do tempo de descobrir a substring comum mais longa em duas cordas é O (a^2*m). Além disso, a complexidade espacial é outro custo de executar um programa. A complexidade do espaço representa o espaço que um programa ou uma função manterá na memória durante a execução. Portanto, a complexidade do espaço de encontrar a subsequência mais comum é O (1), pois não requer espaço para executar.

Conclusão:

Neste artigo, aprendemos sobre os métodos de encontrar a substring mais comum em uma string usando a programação Python. Fornecemos três exemplos simples e fáceis para obter a mais longa substring comum no Python. O primeiro exemplo usa a combinação de 'for' e 'while loop. Enquanto no segundo exemplo, seguimos a abordagem iterativa usando o loop 'para' e 'se' lógica. Pelo contrário, no terceiro exemplo, simplesmente usamos a função embutida do Python para obter o comprimento da substring comum em uma string. Por outro lado, a complexidade do tempo de encontrar a substring comum mais longa em uma corda usando python é O (a^2*m), onde A e Ma são o comprimento das duas cordas; String 1 e String 2, respectivamente.