Perl :: Aufgabe #3 :: Lösung #1
5 Lösungen

#3
Schnittmenge von 2 Arrays
Anfänger - Perl
von Gustl
- 06.08.2012 um 22:46 Uhr
Schreiben Sie ein Skript, das Sie auffordert 2 Integer-Arrays einzugeben. Aus diesen 2 Arrays soll dann ein drittes Array erzeugt werden, das nur die Elemente enthält, die in beiden Arrays vorkommen. Also die Schnittlänge dieser beiden Arrays.
#1

von progdoc (2220 Punkte)
- 12.08.2012 um 02:35 Uhr

#!/usr/bin/perl use strict ; use warnings ; sub intersection { my ( $firstarray , $secondarray ) = @_ ; my %firsthash ; my %secondhash ; foreach my $element ( @{$firstarray} ) { $firsthash{ $element }++ ; } foreach my $element ( @{$secondarray} ) { $secondhash{ $element }++ ; } my @intersection ; foreach my $element ( keys %firsthash ) { if ( exists $secondhash{ $element } ) { my $minimum = $firsthash{ $element } < $secondhash{ $element } ? $firsthash{ $element } : $secondhash{ $element } ; for ( 1..$minimum ) { push ( @intersection , $element ) ; } } } return @intersection ; } my @array = qw ( Berlin Athen Amsterdam Moskau Berlin Berlin ) ; my @array2 = qw ( Berlin Warschau Paris Berlin ) ; foreach my $city ( intersection ( \@array , \@array2 ) ) { print "$city\n" ; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1