Python-Code zum Drucken gemeinsamer Zeichen zweier Zeichenfolgen in alphabetischer Reihenfolge
Drucken Sie bei zwei Zeichenfolgen alle gängigen Zeichen in lexikografischer Reihenfolge. Wenn keine gemeinsamen Buchstaben vorhanden sind, drucken Sie -1. Alle Buchstaben sind Kleinbuchstaben.
Beispiele:
Eingabe: string1: Geeks string2: forgeeks Ausgabe: eegks Erläuterung: Die Buchstaben, die zwischen gemeinsam sind Die beiden Zeichenfolgen sind e (2 Mal), k (1 Mal) und s (1 Mal). Daher ist die lexikografische Ausgabe "eegks" Eingabe: string1: hhhhhello string2: gfghhmh Ausgabe: hhh
Dieses Problem ist bereits gelöst. Weitere Informationen finden Sie unter Link zum Drucken gemeinsamer Zeichen zweier Zeichenfolgen in alphabetischer Reihenfolge . Wir werden dieses Problem in Python mithilfe der Intersection- Eigenschaft und des Collections.Counter() -Moduls lösen . Ansatz ist einfach,
- Konvertieren Sie beide Zeichenfolgen mithilfe der Counter (str) -Methode, die Zeichen der Zeichenfolge als Schlüssel und deren Häufigkeit als Wert enthält, in den Wörterbuchdatentyp .
- Suchen Sie nun mithilfe der Eigenschaft intersection (a & b) gemeinsame Elemente zwischen zwei Zeichenfolgen .
- Das Ergebnis ist auch ein Zählerwörterbuch mit gemeinsamen Elementen als Schlüssel und ihren gemeinsamen Frequenzen als Wert.
- Verwenden Sie die Methode elements() des Zählerwörterbuchs, um die Liste der Schlüssel um ihre Häufigkeit zu erweitern.
- Sortieren Sie die Liste und verketten Sie jedes Zeichen der Ausgabeliste ohne Platz zum Drucken der resultierenden Zeichenfolge.
from
collections
import
Counter
def
common(str1,str2):
dict1
=
Counter(str1)
dict2
=
Counter(str2)
commonDict
=
dict1 & dict2
if
len
(commonDict)
=
=
0
:
(
-
1
)
return
commonChars
=
list
(commonDict.elements())
commonChars
=
sorted
(commonChars)
(''.join(commonChars))
if
__name__
=
=
"__main__"
:
str1
=
'geeks'
str2
=
'forgeeks'
common(str1, str2)
Ausgabe:
Eegks