Thread String wieder zufällig zusammenfügen?
(7 answers)
Opened by Saugwels98 at 2013-09-22 18:15 2013-09-22T19:58:01 Raubtier Weil ich's wollte. :) Wenn man nur testen will, dürfte es reichen zu vergleichen, ob in beiden Wörtern jeder Buchstabe in derselben Anzahl vorkommt (und (dadurch) natürlich auch beide Wörter dieselbe Anzahl von Buchstaben haben). 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 warnings; use strict; sub isAnagram { my $w1 = shift; my $w2 = shift; if (length($w1) != length($w2)) { return 0; } my %h1; my %h2; my @a1 = split("", $w1); my @a2 = split("", $w2); my $i; foreach $i (@a1) { $h1{$i} += 1; } foreach $i (@a2) { if (! exists($h1{$i})) { return 0; } $h2{$i} += 1; } foreach $i (keys(%h1)) { if (! exists($h2{$i})) { return 0; } print "$i\t"; print "$h1{$i}\t"; print "$h2{$i}\n"; if ($h1{$i} != $h2{$i}) { return 0; } } return 1; } print isAnagram("Hallo", "ollaH") . "\n\n"; print isAnagram("KAMEL", "AMEK") . "\n\n"; print isAnagram("KAMEL", "LLMEK") . "\n\n"; print isAnagram("KAMEL", "LAMEK") . "\n"; print isAnagram("DONAUDAMPFSCHIFFAHRTSGESELLSCHAFTSKAPITÄN", "RGHEKAALPFOPMTEFSACDTUFSNINSCTFDAÄSHLSAHI") . "\n"; |