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,

  1. 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 .
  2. Suchen Sie nun mithilfe der Eigenschaft intersection (a & b) gemeinsame Elemente zwischen zwei Zeichenfolgen .
  3. Das Ergebnis ist auch ein Zählerwörterbuch mit gemeinsamen Elementen als Schlüssel und ihren gemeinsamen Frequenzen als Wert.
  4. Verwenden Sie die Methode elements() des Zählerwörterbuchs, um die Liste der Schlüssel um ihre Häufigkeit zu erweitern.
  5. 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
        print (-1) 
        return
  
    
    commonChars = list(commonDict.elements())  
  
    
    
    commonChars = sorted(commonChars)  
  
    
    
    print (''.join(commonChars))  
  
if __name__ == "__main__"
    str1 = 'geeks'
    str2 = 'forgeeks'
    common(str1, str2)  

Ausgabe:

Eegks