while(<>) { chomp; $s = length $_; @bs = split //; $bucket{$_}++ foreach(@bs); while(keys %bucket) { $tuple = ""; %old_b = { %bucket }; foreach(sort keys(%bucket)) { last if( length $tuple == 4); if($bucket{$_} >= 4 && length $tuple==0) { $tuple = $_ x 4; $bucket{$_}-=4; last; } else { if($bucket{$_} > 0) { $tuple .= $_; $bucket{$_}--; } else { last; } } } if(length $tuple == 4){ print "$tuple\n"; } else { %bucket = %old_b; } foreach( keys(%bucket)){ (delete $bucket{$_}) if ($bucket{$_} +== 0); } } }
In reply to Re^3: finding tuples
by Anonymous Monk
in thread finding tuples
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |