Thread Eingebene Wörter auf richtige Reihenfolge nach Vorlage prüfen
(11 answers)
Opened by tudüü... at 2011-02-15 15:39
Hallo tudüü,
MatthiasWs Lösung ist gut, meine ist etwas simpler, und sie kann auch Lücken erlauben, d.h. wenn z.B. 'garten pc' eine erlaubte Eingabe ist (die Reihenfolge stimmt ja). Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #!/usr/bin/perl use strict; use warnings; # Die Wörter mit ihrer zulässigen Position my %wort = ( 'haus' => 1 , 'tier' => 1 , 'garten' => 1 , 'straße' => 2 , 'auto' => 2 , 'reifen' => 2 , 'pc' => 3 , 'monitor' => 3 , 'tastatur' => 3 , 'maus' => 3 ); # Beispieleingaben my @test = ( 'haus reifen maus' , 'auto tier maus' , 'garten pc' ); TEST: for (@test) { my @input = split / /, $_; my $lastval = 0; for (@input) { # Wenn Lücken erlaubt sind (s.o. drittes Beispiel) if ($wort{$_} and $wort{$_} > $lastval) { # Wenn keine Lücken erlaubt sind (s.o. drittes Beispiel) #if ($wort{$_} and $wort{$_}-$lastval==1) { $lastval = $wort{$_}; next; } else { print "Falsche Reihenfolge: @input\n"; next TEST; } } print "Richtige Reihenfolge: @input\n" } HTH Grüße payx |