Proces znalezienia najdłuższej wspólnej podsekwencji:
Prostym procesem znalezienia najdłuższej wspólnej podsekwencji jest sprawdzenie każdego znaku String 1 i znalezienie tej samej sekwencji w ciągu 2, sprawdzając każdy znak ciągu 2 jeden po drugim. Na przykład powiedzmy, że mamy ciąg 1 „st1” i ciąg 2 'st2' odpowiednio z długościami A i B. Sprawdź wszystkie podłoże „ST1” i zacznij iterować przez „ST2”, aby sprawdzić, czy jakikolwiek podsumowanie „ST1” istnieje jako „ST2”. Zacznij od dopasowywania podłoża o długości 2 i zwiększeniu długości o 1 w każdej iteracji, wznosząc się do maksymalnej długości strun.
Przykład 1:
Ten przykład dotyczy znalezienia najdłuższego wspólnego podstępu z powtarzającymi się znakami. Python zapewnia proste wbudowane metody wykonywania dowolnej funkcji. W poniższym przykładzie zapewniliśmy najprostszy sposób na znalezienie najdłuższej wspólnej podsekwencji w 2 ciągach. Połączenie „for” i „podczas„ pętli jest wykorzystywane do uzyskania najdłuższego wspólnego podrzędnego w ciągu. Spójrz na przykład podany poniżej:
def LongcomSubs (ST1, ST2):Poniższe dane wyjściowe zostaną wyprodukowane po wykonaniu powyższego kodu. Znajdzie najdłuższy wspólny podłoże i da ci jako wyjście.
Przykład 2:
Innym sposobem na znalezienie najdłuższego wspólnego podstępu jest przestrzeganie podejścia iteracyjnego. A „do„ pętli ”jest używany do iteracji, a warunek„ jeśli ”odpowiada wspólnemu podłożeniu.
def longcomsubs (a, b, m, n):Wykonaj powyższy kod w dowolnym interpreterie Python, aby uzyskać pożądane wyjście. Jednak użyliśmy narzędzia Spyder do wykonania programu, aby znaleźć najdłuższy wspólny podłoże w ciągu. Oto dane wyjściowe powyższego kodu:
Przykład 3:
Oto kolejny przykład, który pomoże Ci znaleźć najdłuższy wspólny podłoże w ciągu za pomocą kodowania Pythona. Ta metoda jest najmniejszym, najprostszym i najłatwiejszym sposobem na znalezienie najdłuższej wspólnej podsekwencji. Spójrz na przykładowy kod podany poniżej:
def Common (ST1, ST2):Poniżej można znaleźć wyjście kodu podanego powyżej
Za pomocą tej metody nie zwróciliśmy wspólnego podrzędu, ale długość tego wspólnego podrzędu. Aby pomóc Ci uzyskać pożądany wynik, pokazaliśmy zarówno wyniki, jak i metody uzyskania tych wyników.
Złożoność czasu i złożoność przestrzeni w znalezieniu najdłuższego wspólnego podrzędu
Wykonanie lub wykonanie dowolnej funkcji można opłacić lub wykonać; Złożoność czasu jest jednym z tych kosztów. Złożoność czasu dowolnej funkcji jest obliczana poprzez analizę tego, ile czasu może zajmie instrukcja do wykonania. Stąd, aby znaleźć wszystkie podłoże w „ST1”, potrzebujemy O (a^2), gdzie „a” jest długością „st1”, a „o” jest symbolem złożoności czasu. Jednak złożoność czasowa iteracji i ustalenie, czy podłoże istnieje w „ST2”, czy nie, jest O (M), gdzie „M” jest długością „ST2”. Tak więc całkowita złożoność czasu odkrywania najdłuższego wspólnego podrzędnego w dwóch strunach wynosi O (A^2*m). Ponadto złożoność przestrzeni to kolejny koszt wykonania programu. Złożoność przestrzeni reprezentuje przestrzeń, którą program lub funkcja będzie przechowywać w pamięci podczas wykonywania. Stąd złożoność przestrzeni znalezienia najdłuższej wspólnej podsekwencji wynosi O (1), ponieważ nie wymaga żadnej przestrzeni do wykonania.
Wniosek:
W tym artykule dowiedzieliśmy się o metodach znalezienia najdłuższego wspólnego podrzędnego w ciągu za pomocą programowania Pythona. Dostarliśmy trzy proste i łatwe przykłady, aby uzyskać najdłuższy wspólny podaj w Python. Pierwszy przykład używa kombinacji „for” i „podczas pętli. Podczas drugiego przykładu postępowaliśmy zgodnie z podejściem iteracyjnym, używając logiki „dla„ pętli ”i„ jeśli ”. Przeciwnie, w trzecim przykładzie po prostu wykorzystaliśmy wbudowaną funkcję Pythona, aby uzyskać długość wspólnego podkładu w ciągu. Natomiast złożoność czasu znalezienia najdłuższego wspólnego pod substring w ciągu używającym Python wynosi O (A^2*m), gdzie A i MA są długością dwóch ciągów; Odpowiednio ciąg 1 i ciąg 2.