Comment detail

重複する要素を取り除く (Nested Flatten)

This comment is reply for 2850 にしお: パターンマッチがうらやましい…(重複する要素を取り除く). Go to thread root.

そうか!お題には「 重複する要素を取り除く」としか書いてない(笑
ということで順序は壊れるし効率もわるいけど。。。
こんなのもあり?
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
sub eraseDuplicate(@)
{
	$_ = join(' ', sort(@_));
	s/([^ ]+ )\1+//g;
	return split(' ');
}

my @sample = (3, 1, 4, 1, 5, 9, 2, 6, 5);

print '入力:[' . join(', ', @sample) . "]\n";
@sample = &eraseDuplicate( @sample );
print '出力:[' . join(', ', @sample) . "]\n";

exit 0;
一手間かけて順序保持するように修正~
だけど、文字列(単語)の重複含めて排除するでもない限りは
使い物にならないかなと(笑
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sub eraseDuplicate(@)
{
    my @out;
    my $a = ' ' . join(' ', sort(@_)) . ' ';
    $a =~ s/([^ ]+ )\1+//g;
    foreach my $b ( @_ )
    {
        push(@out, $1) if( $a =~ m/ ($b) / );
    }
    return @out;
}

Index

Feed

Other

Link

Pathtraq

loading...