Python :: Aufgabe #331 :: Lösung #3
4 Lösungen
#331
Isomorphe Strings (Mustergleichheit)
Fortgeschrittener - Python
von JKooP
- 06.03.2021 um 17:43 Uhr
Als isomorph bezeichnet man zwei oder mehrere Strings (Texte),
die zwar inhaltlich unterschiedlich sind, aber dennoch das gleiche Muster aufweisen.
Achtung:
Gleiche Buchstaben bedeuten Musterwiederholung! ABAB ist nicht ABCD, aber CDCD.
Beispiele:
s1 = ABBA; s2 = OTTO => true
s1 = PAPER; s2 = TITLE => true
s1 = EGG; s2 = ADD => true
s1 = BADC; s2 = BABA => false
s1 = BBBAAABA; s2 = AAABBBBA => false
Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.
Viel Spaß
die zwar inhaltlich unterschiedlich sind, aber dennoch das gleiche Muster aufweisen.
Achtung:
Gleiche Buchstaben bedeuten Musterwiederholung! ABAB ist nicht ABCD, aber CDCD.
Beispiele:
s1 = ABBA; s2 = OTTO => true
s1 = PAPER; s2 = TITLE => true
s1 = EGG; s2 = ADD => true
s1 = BADC; s2 = BABA => false
s1 = BBBAAABA; s2 = AAABBBBA => false
Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.
Viel Spaß
#3
von nitnat (670 Punkte)
- 09.04.2021 um 20:02 Uhr
Python-Code
def analyze_pattern(input_string): char_dict = {} for i in range(len(input_string)): char = input_string[i] if char not in char_dict: char_dict[char] = [i] else: char_dict[char].append(i) return [char_dict[char] for char in char_dict] def compare_pattern(str1, str2): if len(str1) != len(str2): return False else: return analyze_pattern(str1) == analyze_pattern(str2) # Test a, b = "PAPER", "title" c, d = "badc", "BABA" e, f = "dolle sache oder?", "7/{{#?f@.,#?/7#§$" print(compare_pattern(a, b)) print(compare_pattern(c, d)) print(compare_pattern(e, f))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1