Menu
CoddyTech

Longest Common Subsequence

Otrzymujesz dwa ciągi znaków: text1 i text2. Podciąg ciągu znaków zachowuje niektóre jego litery w ich pierwotnej kolejności, a pozostałe pomija; zachowane litery nie muszą sąsiadować ze sobą. Zwróć długość najdłuższego ciągu znaków, który jest podciągiem obu ciągów, lub 0, jeśli oba ciągi nie mają wspólnej litery.

Funkcja

longestCommonSubsequence(text1: string, text2: string) → integer
text1string
pierwszy ciąg znaków
text2string
drugi ciąg znaków
Zwracainteger
długość najdłuższego wspólnego podciągu

Ograniczenia

  • 1 ≤ text1.length ≤ 1000
  • 1 ≤ text2.length ≤ 1000
  • Oba ciągi zawierają wyłącznie małe litery alfabetu angielskiego.

Przykłady

Wejście
text1 = "stone"text2 = "longest"
Wyjście
3
Wyjaśnienie
Litery o, n, e występują w tej kolejności w obu słowach, więc one jest wspólnym podciągiem o długości 3. W słowie longest litery s i t występują na końcu, a w słowie stone na początku, więc wspólnym podciągiem, który je zawiera, może być tylko st, który jest krótszy.

lock icon+19 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy potrafisz zwrócić jedną najdłuższą wspólną podsekwencję, a nie tylko jej długość?

Zresetuj kod
def longestCommonSubsequence(text1, text2):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

text1 = "stone"
text2 = "longest"

Oczekiwane

3