Wie findet man den Unterschied zwischen zwei Strings in Golang?

9

Hier ist mein gewünschtes Ergebnis

%Vor%

Ich suche nach dem Unterschied zwischen den zwei String Slices!

    
samol 15.10.2013, 05:59
quelle

5 Antworten

12

Abhängig von der Größe der Slices sind verschiedene Lösungen am besten geeignet.

Meine Antwort geht davon aus, dass die Reihenfolge keine Rolle spielt.

Einfache Loops verwenden, nur für kleinere Slices:

%Vor%

Ausgabe:

%Vor%

Spielplatz: Ссылка

    
ANisus 15.10.2013, 06:48
quelle
11

Ich benutze die Karte, um dieses Problem zu lösen

%Vor%

Ausgabe:
Hallo! Welt

    
msheng 16.10.2013 09:59
quelle
11

Unter der Annahme, dass Go Maps ~ O (1) sind, ist hier eine ~ O (n) Differenzfunktion, die auf unsortierte Slices wirkt.

%Vor%     
user604260 01.08.2017 02:31
quelle
1
%Vor%     
Michael Dorner 24.08.2017 14:43
quelle
0

Als von ANisus erwähnt, werden verschiedene Ansätze für unterschiedliche Größen von Eingabeschnitten geeignet sein. Diese Lösung funktioniert unabhängig von der Eingabegröße in der linearen Zeit O(n) , setzt jedoch voraus, dass die "Gleichheit" die Indexposition enthält.

Daher in den OP-Beispielen von:

%Vor%

Die Einträge foo und bar sind nicht nur wegen des Wertes gleich, sondern auch aufgrund ihres Indexes im Slice.

Unter diesen Bedingungen können Sie Folgendes tun:

%Vor%

Produziert:

  
    

= & gt; Hallo

  

Spielplatz

Wenn Sie die Slices zu:

ändern %Vor%

Es wird produzieren:

  
    

= & gt; Bazbar
    = & gt; Hallo

  
    
Intermernet 15.10.2013 06:39
quelle

Tags und Links