Finden, Zeichen, die mit den meisten vorkommen im string mit C#?
Zum Beispiel habe ich einen string:
"abbbbccd"
b
hat die meisten vorkommen. Bei der Verwendung von C++, der einfachste Weg, dies zu behandeln, ist das einsetzen jedes einzelne Zeichen in eine map<>
. Mache ich das gleiche in C#? Gibt es einen eleganten Weg, es zu tun mit LINQ?
InformationsquelleAutor der Frage Chan | 2011-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinweise:
"aaaabbbb"
nur einen von diesen zurückgegeben werden (Dank xanatos für Kommentar). Wenn Sie müssen alle Elemente, die mit der maximalen Anzahl, verwenden Albin Lösung statt.InformationsquelleAutor der Antwort Femaref
Diesem weil jemand gefragt für eine version 2.0, also kein LINQ.
Anstatt diese für die LINQ-version. Es wird Extrakt gepaart "besten" (aaaabbbb == a, b). Es wird NICHT funktionieren, wenn str == String.Leer.
InformationsquelleAutor der Antwort xanatos
InformationsquelleAutor der Antwort Albin Sunnanbo
Inspiriert von Stephen ' s Antwort, fast das gleiche:
Update: Habe eine schnelle benchmarking dieser Antwort vs Jodrell ist Antwort (release build, debugger getrennt, oh ja)
InformationsquelleAutor der Antwort nawfal
EDIT 3
Hier ist meine Letzte Antwort, die ich denke, (nur) Schattierungen Nawfal ist für die Leistung auf längere Sequenzen.
Jedoch angesichts der geringeren Komplexität der Nawfal Antwortund seine mehr Universelle Leistung, vor allem in Bezug auf die Frage, würde ich wählen, die.
EDIT 2BEARBEITENWenn Sie möchten, eine effiziente generische Lösung, die Konten für die Tatsache, dass mehrere Elemente haben die gleiche Frequenz, starten Sie mit dieser Erweiterung, die
Diese Erweiterung funktioniert in allen der folgenden Szenarien
oder,
Beachten Sie, dass
mostFrequent
ist einKeyValuePair<int, IEnumerable<char>>
.Wenn so aufgeschlossen Sie vereinfachen könnten, indem Sie diese an eine andere Erweiterung,
die offensichtlich verwendet werden könnte, so
hier
mostFrequent
ist einIEnumerable<char>
.InformationsquelleAutor der Antwort
Finden Sie die einfachsten und ohne eingebaute Funktion verwendet
Beispiel-code und links
Mehr darüber wissen, wie man max auftreten und was ist der flow.
Wie man max aufgetreten sind Charakter und max vorkommen im string
InformationsquelleAutor der Antwort Rohit
Dies ist Femaref die Lösung geändert und gibt mehrere Briefe, wenn Ihre Anzahl entspricht. Seine nicht mehr ein one-liner, aber noch einigermaßen übersichtlich.
Nach Diskussion mit nawfal:
InformationsquelleAutor der Antwort Stephen Kennedy
Code:
InformationsquelleAutor der Antwort Eve
InformationsquelleAutor der Antwort ramadongre
InformationsquelleAutor der Antwort Rajesh T