- プログラミングのお題スレ Part7 [転載禁止]©2ch.net
786 :デフォルトの名無しさん[sage]:2015/09/16(水) 01:04:42.91 ID:zgtxEZCv - use feature qw{:5.16};
sub next_permutation { defined $_[1] and (next_permutation(@_[1..$#_]) or ($_[0] lt $_[1]) and do { for (1..$#_) {$_[0] lt $_[$_] ? $i = $_ : last} @_[0, $i] = @_[$i, 0]; @_[1..$#_] = reverse @_[1..$#_]; 1 }) } #@a = split '', 'aaabc'; # 'aaaaaaaaaaaaaaaabc'; @a = split '', '112334556'; say join '', @a; say join '', @a while next_permutation @a; こんな感じな。sortをreverseにしたとき、ぐっと速くなった。
|