Thread Eingebene Wörter auf richtige Reihenfolge nach Vorlage prüfen (11 answers)
Opened by tudüü... at 2011-02-15 15:39

payx
 2011-02-15 16:08
#145681 #145681
User since
2006-05-04
564 Artikel
BenutzerIn

user image
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

View full thread Eingebene Wörter auf richtige Reihenfolge nach Vorlage prüfen