Comment detail

LL Golf Hole 2 - 文字列に含まれる単語の最初の文字を大文字にする (Nested Flatten)

Cygwin gcc3.4.4で確認

1
main(a,b){for(;(b=getchar())>0;)a=putchar(b>96&a<33?b-32:b);}
だんだん凶悪に…55byte
1
b;main(a){b=getchar();main(putchar(b>96&a<33?b-32:b));}
処理が終わらないですね。
golf的にはタイムアウト扱いになるのでは?
スタックオーバーフローで止まるのはダメ?
(うちのパソコンだと5万回くらいで終了。ただしゴミが出まくる)

putcharとgetcharのつづりをこれ以上短くできないのが痛いです。
やけくそで外道版も書いてみました。
1
2
3
4
5
●止まらない問題修正版(56byte)
b;main(a){b=getchar();~b&&main(putchar(b-a>64?b-32:b));}

●外道版(45byte)
main(){system("perl -pe\"s/\\b./\\U$&/g\"");}

お題の文字列すら変換できてなかった。失敗失敗。

1
2
3
4
5
<●止まらない問題修正版(56byte)
< b;main(a){b=getchar();~b&&main(putchar(b-a>64?b-32:b));}
---
>●止まらない問題修正版(59byte)
> b;main(a){b=getchar();~b&&main(putchar(b>96&a<33?b-32:b));}
外道版はUnix系なら後2byte短くなるんじゃないかと思ってみたり
1
2
/*●外道版(43byte)*/
main(){system("perl -pe's/\\b./\\U$&/g'");}

Index

Feed

Other

Link

Pathtraq

loading...