#第14回[Missing letters]#
[問題]
記号や数字、空白を含まない英小文字列が入力される
使われていない文字をアルファベット順に表示する
*以下の入力例に対し正しい出力をすれば正解とする
[入力 |例1]
bcdefghijklmnopqrstuvwxy
[出力 |例1]
az
[入力 |例2]
dddcccbbbaaa
[出力 |例2]
efghijklmnopqrstuvwxyz
[入力 |例3]
abcdefghijklmnopqrstuvwxyz
[出力 |例3]
[入力 |例4]
pneumonoultramicroscopicsilicovolcanoconiosis
[出力 |例4]
bdfghjkqwxyz
[期間]
1/ 8(土)22:00 ~ 1/15(土)21:59
[hr]
=結果=
投稿数 26件(8人)
1位 (60B)
沖 滉均 さん
i=96;main(s){for(gets(&s);i++<122;index(&s,i)||putchar(i));}
bitter_fox さん
main(c,s){gets(s);for(c=96;c++<122;)index(s,c)?:putchar(c);}
roxion1377 さん
l=96;main(C){for(gets(&C);l++<122;)index(&C,l)?:putchar(l);}
五反田 さん
i=96;main(s){for(;i%61;strchr(&s,++i)||putchar(i))gets(&s);}
*1位1番乗り
沖 滉均 さん
[hr]
★解説
今回のポイントは次の2つです。
ある程度のバッファオーバーフローは気にしない
コードを見ると、gets() の引数が、適当なサイズの配列へのポインタではありません。
明らかにバッファオーバーフローしていますが、動作はしているのでCode Golf 的には OK です。
短い名前の関数を探す
面倒な処理は、標準ライブラリ関数で代用できないか検討しましょう。
今回は、文字列から特定の文字を探し、見つけたらその位置のポインタ、見つからなかったら NULL を返す strchr が役立ちそうでした。
でも、その strchr と同じ働きをする index 関数を見つけた方は、さらに 1B 節約できたようです。
あれ、でも1位のコードの4人目は・・・?
Code Golf に興味が出てきたら、コミュニティ「Code Golf を楽しもう」まで!
初心者歓迎、参戦&観戦いつでもお待ちしています!
http://dixq.net/forum/viewforum.php?f=52
第15回の投稿受付中です。
[hr]
OOJ について
ookami さんが、コードのジャッジシステム(β版)を作ってくれました。ありがとうございます。
http://dixq.net/forum/blog.php?u=93&b=1227
これで、投稿コードが不正解じゃないか心配する必要がなくなりますね (╹◡╹*
試しに使ってみたら、ほとんど完成しているみたい。さて、いつから導入しましょうか。
第15回の問題も、これを使って判定できるかな?
.
第14回 mixC++ Code Golf 結果報告
- あーる@Reputeless
- 記事: 84
- 登録日時: 15年前
- 住所: 千葉
第14回 mixC++ Code Golf 結果報告
最後に編集したユーザー あーる@Reputeless on 2011年1月15日(土) 22:08 [ 編集 1 回目 ]
- bitter_fox
- 記事: 607
- 登録日時: 14年前
Re: 第14回 mixC++ Code Golf 結果報告
おぉ~、夢の58Bは僕のコードに埋まってたのですか・・・
残念ながら、%61も思いつきませんでしたし、getsの位置も思いつきませんでした。。。
金が埋まってたのに、上手に採掘できなかったなぁ~
残念ながら、%61も思いつきませんでしたし、getsの位置も思いつきませんでした。。。
金が埋まってたのに、上手に採掘できなかったなぁ~
- あーる@Reputeless
- 記事: 84
- 登録日時: 15年前
- 住所: 千葉
Re: 第14回 mixC++ Code Golf 結果報告
> bitter_fox さん
惜しかったですね!
五反田さんは ほかの方のコードから盗掘(?)というか、良いところを発見するのが得意で感心するばかり。
惜しかったですね!
五反田さんは ほかの方のコードから盗掘(?)というか、良いところを発見するのが得意で感心するばかり。