| Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann. |
Diskussion: Vorschlagsuche (ähnlich zu SMS und T9) im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Anzeige Eingereicht von Ivan Dolvich: Zitat: mir ist wieder eine Aufgabe eingefallen, als ich neulich eine SMS im T9 Modus ...
![]() |
| | #1 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Anzeige Eingereicht von Ivan Dolvich: Zitat:
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #2 (permalink) |
| Registriert seit: 14.04.06 ![]() Likes: 4 | Ich hab' mal was in Python zusammengebastelt. Von der Wortliste wird erwartet, dass sich jedes Wort in einer eigenen Zeile befindet, weil die meisten Wortlisten nun mal so aufgebaut sind. Wenn sie so wie im Beispiel aussehen soll, kann ich das auch schnell ändern. loesung.py |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Hier eine kleine Perl-Lösung mit etwas RegExp: Code mfg, metax.
__________________ Wenn keiner zuschaut, teile ich heimlich durch Null! Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter | |
| | |
| | #4 (permalink) |
| Registriert seit: 12.01.07 ![]() Likes: 0 | Hi Eydeet ich glaube du hast mit der Funktion def word2num(word) die Umkehrung der Aufgabe gemacht - von einem Wort die Sequenz herausfinden. Aber ich denke wir brauchen etwas wie def nums2words(nums). Es könnte auch heissen String[] findWordsForNums(int[] nums). Übrigens ist die Umkehrung auch eine sehr nette Aufgabe, ich werde versuchen sie in Groovy zu lösen. Gruß, Ivan |
| | |
| | #5 (permalink) |
| Registriert seit: 14.04.06 ![]() Likes: 4 | Naja, das Ganze funktioniert schon so, wie es soll. Die Funktion word2num(word) konvertiert, wie der Name schon andeutet, ein Wort in das Nummern-Äquivalent. Das Programm läuft dann die gesamte Wordlist durch und konvertiert jedes in eine Nummer, die es dann mit der eingegebenen vergleicht. Ein paar Kommentare im Code hätten vielleicht wirklich nicht geschadet. Außerdem ist das Ganze auch nicht besonders schön gelöst. 1. unterstützt mein Programm keine Sonderzeichen in Wörtern (d.h. Zeichen außer [a-z]) 2. ist das if/elif/else ziemlich hässlich ![]() Mfg, Eydeet |
| | |
| | #6 (permalink) | |
| Registriert seit: 12.01.07 ![]() Likes: 0 | Zitat:
Code Viele Grüße, Ivan | |
| | |
| | #7 (permalink) |
| Registriert seit: 21.04.08 ![]() Likes: 0 | Hallo! Meine Java Lösung SmsMain.java Code: public class SmsMain {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new T9().getWordsByKeys("4"));
System.out.println(new T9().getWordsByKeys("4 3"));
System.out.println(new T9().getWordsByKeys("7 7 6"));
}
} Code: public class T9 {
private WordList wordList = null;
private ArrayList<String> keySet = null;
public T9() {
this.wordList = new WordList();
this.keySet = new ArrayList<String>();
this.init();
}
private void init() {
this.keySet.add("[ ]");
this.keySet.add("[.,?!]");
this.keySet.add("[abc]");
this.keySet.add("[def]");
this.keySet.add("[ghi]");
this.keySet.add("[jkl]");
this.keySet.add("[mno]");
this.keySet.add("[pqrs]");
this.keySet.add("[tuv]");
this.keySet.add("[wxyz]");
}
public String getWordsByKeys(String value) {
String regex = "";
for(int i=0; i<value.split(" ").length; i++)
regex += keySet.get(Integer.parseInt(value.split(" ")[i])) + ".*";
return Arrays.toString(wordList.getWords(regex).toArray());
}
} Code: public class WordList {
private ArrayList<String> words = null;
public WordList() {
this.words = new ArrayList<String>();
this.init();
}
private void init() {
this.words.add("ich");
this.words.add("programmiere");
this.words.add("ein");
this.words.add("paar");
this.words.add("aufgaben");
this.words.add("aus");
this.words.add("dem");
this.words.add("hackerboard");
this.words.add("nach");
}
public ArrayList<String> getWords(String regex) {
ArrayList<String> wordsMatch = new ArrayList<String>();
for(String word : words) {
if(word.matches(regex))
wordsMatch.add(word);
}
return wordsMatch;
}
} Felix |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| IP/Portscanner (ähnlich AngryIp) | Stummi | Linux/UNIX | 9 | 21.10.07 23:25 |
| Suche Programm |Samurize ähnlich | .:L | Windows | 3 | 15.07.07 14:52 |
| Programm ähnlich Task-Manager | plooy | Linux/UNIX | 4 | 14.12.06 21:19 |
| freeware ähnlich wie pc anywhere | einstein | Network · LAN, WAN, Firewalls | 5 | 20.04.05 08:38 |
| Fehler ähnlich wie Bluescreen | mido | Windows | 6 | 07.07.02 18:57 |