Wörter Algorithmus

Status
Nicht offen für weitere Antworten.

Mentor49

Mitglied
Hey,
btw: bin neu hier :)

Also folgendes:
Ich übergebe beim Starten meines Programmes x-beliebige Chars als Argumente/Parameter.
z.B: "java getwords n s a e"
Mein Programm soll nun alle möglichen Wörter auflisten, welche mit diesen Buchstaben möglich sind.

Nunja, mein Code sieht bisher so aus:

Code:
import java.util.ArrayList;
import java.lang.String;

public class getwords
{
	public static void main(String[] args) throws InterruptedException
	{
		String[] letters = {args[0],args[1],args[2],args[3]};
		String[] wa = createarray(letters);
		for (int i = 0; i < wa.length; i ++)
		{
				System.out.println(wa[i]);
		}
	}
	
	static String[] createarray(String[] letters)
	{
	ArrayList temp = new ArrayList();
		for (int i = 0; i < letters.length; i ++)
		{
			for (int o = 0; o < letters.length; o ++)
			{
				for (int p = 0; p < letters.length; p ++)
				{
						for (int u = 0; u < letters.length; u ++)
						{

								temp.add(letters[i] + letters[o] + letters[p] + letters[u]);

						}
				}
			
			}
		}
	int t = temp.size();
	String[] re = new String[t];
	for (int f = 0; f < t; f ++)
	{
		re[f] = (String) temp.get(f);
	}
	return re;
	}
}
Nunja, das klappt soweit auch.
Nun habe ich 2 Probleme, wo ich einfach nicht weiter komme.
Wie man dem Code entnehmen kann, habe ich einfach 4 Schleifen erstellt und dadurch die "Wörter" erstellt.
Nunja, aber wie ich oben beschrieben habe, soll das alles dynamisch sein, also es können auch mehr als 4 Chars sein.
Wie ich das mit den Argumenten mache, habe ich mir schon überlegt.
Iwie sowas á la:
Code:
Char[] mychars = arg[0].toCharArray();
Allerdings, weiß ich nicht wie ich das mit der Function "createarray" hinbekommen soll.
Denn ich weiß ja vorher nicht wie groß das Chararray ist. :\
Ich hab gehört dass man es "rekursiv" lösen kann. (Versteh ich aber nicht)
Nächstes Problem ist, ich möchte dass jeder Buchstabe nur einmal vorkommt!
Also bis jetzt kommen bei den Argumenten "n s a e", auch Einträge wie "nnnn" usw.
Auch verständlich, denn so habe ich es ja auch mit meinen Schleifen vorgegeben.
Allerdings wenn man zB "d o o f" übergibt, darf ruhig "food" o.Ä. rauskommen, denn ich habe "o" ja zweimal übergeben.

Nunja, ich hoffe ihr habt mein Anliegen verstanden und könnt mir auf die Sprünge für eine Lösung helfen.

Danke im Vorraus :)

lg Chris
 

Mentor49

Mitglied
Danke für die Erklärung und die Quelle aber hab mir das iwie gedacht.
Dachte das könnte man in einem Thread lösen, iwie mit Schleifen und Arrays.
Denke auch dass das, how ever, möglich ist.
Für Tipps / Beispiel- bzw Pseudo Codes bin ich sehr dankbar :)

Lg
 

Landei

Top Contributor
Code:
public class StringPerm {

  private static void findPermutations(String solution, String rest, List<String> solutions) {
    if (rest.length() == 0) {
      solutions.add(solution);
    } else {
      for (int i = 0; i < rest.length(); i++) {
        findPermutations(solution + rest.charAt(i), 
                         rest.substring(0,i) + rest.substring(i+1, rest.length()), 
                         solutions);
      }
    }
  }
  
   private static void permutations(String s) {
     List<String> solutions = new ArrayList<String>();
     findPermutations("", s, solutions);
     System.out.println(solutions);
   }


  public static void main(String... args) {
     permutations(args.length == 0 ? "lsmf" : args[0]);
   }
}
 

Mentor49

Mitglied
Landei: Vielen Dank :)

Werd jetzt nur noch was einbauen dass er doppelte Einträge löscht.
Das passiert halt wenn man sowas macht wie "haa", also wenn ein Buchstabe öfter vorkommt.

Lieben Gruß, Chris (;
 

Mentor49

Mitglied
Joa ich habs so gemacht:
Code:
		String letters = args[0];
		ArrayList<String> solutions = new ArrayList<String>();
		findPermutations("", letters, solutions);

		HashSet hs = new HashSet();
		hs.addAll(solutions);
		ArrayList words = new ArrayList();
		words.addAll(hs);
 

Landei

Top Contributor
Warum so kompliziert, wozu brauchst du unbedingt eine Liste? Nimm doch gleich ein Set für alles:

Code:
...
private static void findPermutations(String solution, String rest, Set<String> solutions) { 
...
Set<String> solutions = new TreeSet<String>(); //gleich geordnet
...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
C Kürzeste Wörter bestimmen Allgemeine Java-Themen 8
K Java Standardbib/reservierte Wörter erweitern Allgemeine Java-Themen 1
B Java Audio in Wörter/Phonems aufteilen Allgemeine Java-Themen 0
OlafHD Prozentualer Abgleich von zweit Sätzen/Wörter Allgemeine Java-Themen 5
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
B Per Buttonklicks einer Liste Wörter hinzufügen - Wie umsetzen? Allgemeine Java-Themen 11
D Wörter aus Datei einlesen Allgemeine Java-Themen 9
K Wörter in Strings zählen Allgemeine Java-Themen 7
S Speichern/Laden/Hinzufügen/Löschen der Array-Wörter; unerwartete Ausgabe Allgemeine Java-Themen 6
T Wörter Vergleichen Allgemeine Java-Themen 3
G Regulärer Ausdruck für 2 Wörter Allgemeine Java-Themen 3
D Wort in Text mit >100.000 Wörter finden Allgemeine Java-Themen 7
S Wörter ohne Leerzeichen erkennen Allgemeine Java-Themen 5
J Neue Wörter bilden Allgemeine Java-Themen 10
L Textdatei nach Wörter durchsuchen Allgemeine Java-Themen 3
J String Wörter zählen Allgemeine Java-Themen 4
M JTextPane Mausklick auf bestimmte Wörter startet Aktion Allgemeine Java-Themen 8
S Wörter ersetzen mit regex Allgemeine Java-Themen 11
B Algorithmus für Arbeit mit fehlenden Listenelementen? Allgemeine Java-Themen 1
schegga_B AES-Algorithmus in javax.crypto Allgemeine Java-Themen 3
M Laufzeit des Prim Algorithmus Allgemeine Java-Themen 3
O Newton Algorithmus Java Allgemeine Java-Themen 1
CptK Backpropagation Algorithmus Allgemeine Java-Themen 6
N Google Authenticator Algorithmus (SHA1) Allgemeine Java-Themen 1
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
Zrebna Quicksort-Algorithmus - zufälliges Pivot wählen Allgemeine Java-Themen 6
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
B Algorithmus Warteschlange Ringpuffer wirklich fehlerfrei Allgemeine Java-Themen 8
M Probleme mit Negamax-Algorithmus Allgemeine Java-Themen 29
F Q - Learning Algorithmus Bug Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
M Minmax Algorithmus Verständnisproblem Allgemeine Java-Themen 2
H Rundreise frage (Algorithmus) Allgemeine Java-Themen 18
F KMP-Algorithmus Allgemeine Java-Themen 9
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
P MinMax Algorithmus Allgemeine Java-Themen 0
J Abhängigkeit zwischen Rechenzeit und Speicherbedarf in einen Algorithmus Allgemeine Java-Themen 7
K Djikstra-Algorithmus Allgemeine Java-Themen 1
T Minimax/Alphabeta Algorithmus hängt sich auf (?) Allgemeine Java-Themen 2
M Algorithmus zum Zahlen einteilen Allgemeine Java-Themen 8
O Best Practice Hilfe bei Algorithmus gesucht Allgemeine Java-Themen 10
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
S Rucksackproblem und genetischer Algorithmus Allgemeine Java-Themen 9
L Abbruch des Algorithmus Allgemeine Java-Themen 8
D Input/Output Ausgleichen chemischer Reaktionsgleichungen mit dem Gauß-Algorithmus Allgemeine Java-Themen 2
Messoras A*-Algorithmus integrieren Allgemeine Java-Themen 3
S Buchscan 3D Dewarp Algorithmus - Ansätze Allgemeine Java-Themen 1
B Verteilungs-/Vergabe-Algorithmus mit abhängigen Score-Werten Allgemeine Java-Themen 3
Androbin "Shunting Yard"-Algorithmus Allgemeine Java-Themen 6
B Algorithmus - Project Euler Problem 18 Allgemeine Java-Themen 2
N Algorithmus zum bewerten von mathematischen Funktionen Allgemeine Java-Themen 11
O Algorithmus Optimierung Allgemeine Java-Themen 3
Joew0815 Algorithmus - Zahlenfolge in 4 ähnliche Teile aufteilen Allgemeine Java-Themen 0
O Tag Cloud Algorithmus Idee gesucht Allgemeine Java-Themen 2
A Implementierung eines Algorithmus (Farthest Insertion zur Lösung des TSP) in O(n²) Allgemeine Java-Themen 2
C Eclipse Probleme bei selbst erstelltem Algorithmus Allgemeine Java-Themen 2
H Graph-Algorithmus gesucht Allgemeine Java-Themen 21
N Algorithmus durch Workflow Allgemeine Java-Themen 7
M tree-based diff Algorithmus (Code-Vergleiche) Allgemeine Java-Themen 3
S Uhrzeit Algorithmus sale Allgemeine Java-Themen 11
N A*-Algorithmus Allgemeine Java-Themen 5
A Suche Algorithmus zum Erstellen eines planaren Graphen Allgemeine Java-Themen 5
F Methoden Algorithmus zur Gegnerfindung (Turnier) Allgemeine Java-Themen 9
T Algorithmus Graph Allgemeine Java-Themen 10
J Algorithmus gesucht (Stringtransformation) Allgemeine Java-Themen 4
B Algorithmus Krankenhausbelegung Allgemeine Java-Themen 17
S Algorithmus von Dijkstra Allgemeine Java-Themen 2
alex_fairytail OOP Banknoten Algorithmus Teil 2 Allgemeine Java-Themen 13
2 ArrayList aktualisieren Algorithmus Allgemeine Java-Themen 11
alex_fairytail Methoden Banknoten Algorithmus Allgemeine Java-Themen 10
R Codehinweise: Algorithmus Größenvergleich von n Zahlen Allgemeine Java-Themen 5
SuperSeppel13 WTF?! Algorithmus-Geschwindigkeitstest Allgemeine Java-Themen 2
L Algorithmus für kürzesten Weg mit Wegpunkten Allgemeine Java-Themen 21
C Algorithmus Problem in Minesweeper Allgemeine Java-Themen 5
S Algorithmus um Labyrinth zu erzeugen Allgemeine Java-Themen 6
V Problem mit A* Pathfinder-Algorithmus Allgemeine Java-Themen 2
S Algorithmus um nächst folgende Primzahl zu berechnen Allgemeine Java-Themen 7
S Algorithmus Problem. Rechtecke effizient auf Spielfeld anordnen. Allgemeine Java-Themen 7
C Algorithmus-Hilfe Allgemeine Java-Themen 20
J Algorithmus Längenkombinationen? Allgemeine Java-Themen 7
M Kombinationen über rekursiven Algorithmus berechnen? Allgemeine Java-Themen 10
L Algorithmus für Poker-Hände Allgemeine Java-Themen 7
chik 2 return werte für Greedy-Algorithmus (gelöst) Allgemeine Java-Themen 3
D Abstruse Probleme mit eigenem replace Algorithmus Allgemeine Java-Themen 11
P RC4 Algorithmus Allgemeine Java-Themen 3
D RSA Verfahren - Erweiterter Euklidischer Algorithmus Allgemeine Java-Themen 4
C IBAN und Bic Validieren (Algorithmus) Allgemeine Java-Themen 10
P Problem mit A*-Algorithmus Allgemeine Java-Themen 12
M Algorithmus für automatische Zeilenumbrüche Allgemeine Java-Themen 12
K Postleitzahlen Algorithmus Allgemeine Java-Themen 12
G Problem mit Algorithmus Allgemeine Java-Themen 3
T Hilfe bei einem Algorithmus Allgemeine Java-Themen 2
S Stemming-Algorithmus gesucht (z.B. Porter) Allgemeine Java-Themen 2
RoliMG präfix zu infix algorithmus Allgemeine Java-Themen 6
Z A*-Algorithmus - Probleme mit offener/geschlossener Liste Allgemeine Java-Themen 7
S Javaimplementierung des MD5 Algorithmus Allgemeine Java-Themen 2
E Container-Pack-Algorithmus Allgemeine Java-Themen 4
G k nearest neighbor algorithmus Allgemeine Java-Themen 7

Ähnliche Java Themen


Oben