GOOGLE ADS

Freitag, 15. April 2022

Zählen eindeutiger Zeichen in einem vom Benutzer angegebenen String

Ich muss ein Programm schreiben, das die eindeutigen Zeichen in einem vom Benutzer angegebenen String zählt. Zum Beispiel gibt "abc" 3 und "aabbccd" 4 zurück. Ich darf keine fortgeschrittenen Java-Klassen wie Map, Set usw. verwenden. Ich kann nur Arrays, Strings, For-Schleifen, While-Schleifen und If-Anweisungen verwenden. Ich versuche, eine verschachtelte Schleife zu verwenden, bin aber verwirrt darüber, wie ich den Algorithmus für die zweite for-Schleife schreiben soll.

public static int countUniqueCharacters(String input){
String orgInput = input.toLowerCase();
int count = 0;
int stringLength = input.length();
for( int i = 0; i<stringLength; i++){
for(int j = 2; j > j-i-1; j--){
char temp = orgInput.charAt(i);
if (temp == orgInput.charAt(j)){
count++;


Lösung des Problems

Mit Java 8 könnten Sie Folgendes tun:

public static long countUniqueCharacters(String input) {
return input.chars()
.distinct()
.count();
}

Dies erstellt eine IntStreamvon chars, nimmt dann nur unterschiedliche Werte und zählt dann die Anzahl der Vorkommen.

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...