Thread Arrays: Pärchen zählen (12 answers)
Opened by hugenyn at 2012-01-28 01:17

pq
 2012-01-28 15:01
#155747 #155747
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
2012-01-28T13:44:48 hugenyn
habe aber nicht herausgefunden, warum rosti 3 Paare hat.

was meinst du mit warum?

offensichtlich zählt rostis code nur paare, die an der gleichen position im array sind, wie auch FIFO schon in seiner antwort erklärte.
das ist der grund dafür.

nebenbei: wobei für diese simple aufgabe ein hash völlig überflüssig wäre. um zwei arrays auf gleiche werte an den gleichen stellen zu vergleichen, iteriert man einfach über die indizes und vergleicht die array-elemente:
Code (perl): (dl )
1
2
3
for (0 .. $#array1) {
    if ($array1[$_] eq $array2[$_]) ...
}


beantwortet das deine frage nach dem warum? vermutlich hat rosti nur deine aufgabenstellung falsch verstanden, die du ja auch nur in form eines programms ohne text gestellt hast.

topeg und FIFO haben dir was geliefert, wobei man bei beiden lösungen einen von beiden hashes weglassen kann. man erstellt einfach einen hash aus array1 und iteriert dann über array2:
Code (perl): (dl )
1
2
3
4
my %frau = map { $_ => 1 } @frau;
for my $key (@mann) {
    say "Paar $key" if $frau{ $key }++ == 1;
}


wobei mir auch eine klare aufgabenstellung deinerseits fehlt. was soll passieren, wenn "bl" im ersten array mehrfach vorkommt z.b.?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Arrays: Pärchen zählen