Ich bin im Begriff, gleich lange Zeichenfolge zu vergleichen. Dann muss ich die Unterschiede zählen, die sie haben. Ich würde das mit der Hand anfangen - aber da es so viele Methoden gibt, frage ich mich, ob es eine Funktion gibt, die die Unterschiede, die sich ergeben, trotzdem zählt? Oder erstellen Sie eine Sammlung, in der ich die Elemente zählen kann?Gibt es eine Funktion, die die Anzahl der Unterschiede zwischen zwei Zeichenfolgen zurückgibt?
Antwort
Implementierung von Hamming-Distanz ist trivial:
str_a.chars().zip(str_b.chars()).filter(|x| x.0!=x.1).count()
Sie können die strsim
Kiste verwenden. Es bietet verschiedene String-Differenz-Methoden wie Hamming, Levenshtein, Damerau-Levenshtein, Jaro und Jaro-Winkler. Ich persönlich mag die Damerau-Levenshtein-Differenz, die die Anzahl der angrenzenden Zeichen zählt, die Sie tauschen müssen, und die Anzahl der Zeichen, die Sie entfernen, einfügen oder ersetzen müssen, um eine der Zeichenfolgen in die andere zu verwandeln.
extern crate strsim;
let difference = strsim::damerau_levenshtein(a, b);
ha Hamming wäre genau das, was ich tun muss - aber eine Kiste zu benutzen, um diese Übung zu lösen, wäre irgendwie betrügerisch. Aber ich schaue mir ihre Lösung an. Mybe Ich kann die Funktion/Methode finden, die ich suche. Danke – xetra11
- 1. Berechnen Sie die Anzahl der Unterschiede zwischen zwei NSStrings
- 2. Gibt es eine Std-Funktion, die nur ihren Parameter zurückgibt?
- 3. Gibt es eine Linq-Funktion, die Indizes zurückgibt?
- 4. Funktion, die eine Zeichenfolge zurückgibt
- 5. Gibt es Unterschiede zwischen diesen beiden Linien?
- 6. Funktion, die eine Funktion zurückgibt (Javascript)
- 7. Finden Sie die Anzahl der Quadratwurzeln zwischen zwei Zahlen
- 8. Gibt es ein Programm, das mir die Unterschiede zwischen zwei ausführbaren Dateien zeigen kann?
- 9. Gibt es eine äquivalente Funktion, die das Zeichen an der Position `X` in PHP zurückgibt?
- 10. Rückgabetyp der Funktion, die eine Std :: -Funktion zurückgibt
- 11. Was sind die Unterschiede zwischen den folgenden zwei JavaScript-Code?
- 12. Gibt es in Oracle eine Funktion, die den Unterschied zwischen zwei Daten berechnet?
- 13. Unterschiede zwischen JavaScript-Funktion
- 14. Subversion: Wie finden Sie die Unterschiede zwischen zwei Tags?
- 15. Shopify (liquid): Finde die Anzahl der Tage zwischen zwei Daten
- 16. Wie bekomme ich die Anzahl der Stunden zwischen zwei Zeiten?
- 17. Finden Sie die Datei Unterschiede zwischen zwei Repositories
- 18. Gibt es eine generische Funktion, die eine Datenstruktur verwendet und alle darin enthaltenen Werte zurückgibt?
- 19. Extrahieren Sie unterschiedliche Zeichen, die sich zwischen zwei Zeichenfolgen unterscheiden
- 20. Unterschiede zwischen zwei analytischen Abfragen
- 21. Eine Funktion, die ein Dataset zurückgibt
- 22. Gibt es eine Funktion, die Längen von Zeichenfolgen in C# (.NET) entsprechend vergleicht?
- 23. Können Sie die tatsächlichen Unterschiede zwischen zwei Git-Commits erhalten?
- 24. Wie berechnet man die Anzahl der Monate zwischen zwei DateTimes?
- 25. Funktion anwenden, die NULL zurückgibt
- 26. Einheit testet eine Funktion, die eine Funktion zurückgibt
- 27. Gibt es eine Grenze für die Anzahl der TCP/IP-Verbindungen zwischen Maschinen unter Linux?
- 28. Wie berechne ich die Anzahl der Werktage zwischen zwei Daten?
- 29. Wählen Sie die Anzahl der Zeilen zwischen zwei Terminen
- 30. Berechnen Sie die Anzahl der Tage zwischen zwei Daten?
Sie Editierdistanz suchen? Es gibt eine kleine Anzahl von Kisten, die Routinen zur Berechnung bereitstellen, typischerweise unter Verwendung des Levenshtein-Algorithmus. – BurntSushi5
nein, man kann/muss man selbst schreiben –