トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

PerlAnybatross yapc Fukuoka 2025

学び 色々

hole 1

y//構文を失念していました。\nより改行の方が短いに決まっている

  • わたし
print$b+=$a=()=(/[ADO-R0469B8]/g,/[B8]/g),",$a\n"for<>
  • いっちーさん
print$b+=$a=y/B8/0/+y/ADO-R0469//,",$a
"for<>

hole 2

  • perlのソートは安定的ソートなので順番で頑張らなくても良かったんだ。
  • 2文字づつの分解は/(?=(\S\S))/g)で良いのね。精進、精進
  • あれ?ソート自体もいらないのか???

--

  • わたしの回答
$Q=A;sub x{my%h;my%y;($a,@c)=/./g;$k=$a.$_,$k=~/ /?0:$h{$k}++,$y{$k}||=++$i,$a=$_ for@c;($z)=sort{$h{$b}<=>$h{$a}||$y{$a}<=>$y{$b}}%h;$h{$z}>1&&($m.="$M$Q:$z",$M=",",s/$z/$Q/g,$Q++,x($_));"$m\n$_"}print x($_)for<>
  • moznion さんの回答
$o=A;$_=<>;{$m=$s=$_;($c=()=$s=~/$_/g)>$m&&($m=$c,$w=$_)for/(?=(\S\S))/g;$m>1&&(s/$w/$o/g,$p.=$o++.":$w,",redo)}chop$p;print"$p
$_"
=CUT

修正版

$Q=A;sub x{my%h;$h{$_}++for@c=/(?=(\S\S))/g;($z)=sort{$h{$b}-$h{$a}}@c;$h{$z}>1&&($m.="$M$Q:$z",$M=",",s/$z/$Q/g,x($Q++));"$m
$_"}print x()for<>
  • Score: -106