先月、私は図書館からたくさんの本を借りました。それらはすべて、感情と陰謀を満載した良い本でした。残念ながら、ある時点で私は非常に怒り/悲しみ/失望したので、いくつかのページを引き裂きました。
今、図書館は私が各本で何ページを切り取ったかを知りたがっている。
あなたの目標は、ソートされたコンマ区切りの数字のリストを入力として取り、取り除いた可能性のある最小および最大のページ数を出力するプログラムを書くことです。各行は本を表し、各番号は本の欠落ページを表します。
入力例:
7,8,100,101,222,223
2,3,88,89,90,103,177
2,3,6,7,10,11
1
1,2
出力例:
4/5
5/6
3/6
1/1
1/2
4/5
つまり、本のページ番号がどちら側から始まるかに応じて、4ページまたは5ページを切り取った可能性があります。6/7ページ、8/9ページ、100/101ページ、222/223ページ(4ページ)を切り捨てた可能性があります。あるいは、ページ7/8、ページ99/100、ページ101/102、ページ221/222、およびページ223/224(5ページ)を切り取ることができます。
本のページには常に表面と裏面があることに注意してください。また、ページ番号は本ごとに異なります。一部の書籍では、左側のページに偶数のページ番号があります。一部は右側のページにあります。すべての本は左から右に読みます。
バイト単位の最短コードが勝ちます。厳密なI / O形式は必要ありません。プログラムは、入力として1つ以上の本を取得できる必要があります。楽しむ。
min/max
またはallのいずれかで一貫している必要があることを指定することを忘れないでくださいmax/min
。(個人的には、仕様に含まれない方がいいと思います!)
programs must be able to take one or more books as input
支配する理由は何でしょうか?ほとんどの(すべてではないにしても)コードをラップして、単一の本をループまたは何かに検証します。私見では、チャレンジにほとんど利益を得ることなく、答えにオーバーヘッドを追加するだけです。この質問にはすでに多くの回答がありました。そのため、これをそのままにしておくことをお勧めしますが、今後の課題に留意してください。
1,3,5,7,9,11,13,15,17,18
-組み込みsort
メソッドがデフォルトで辞書式にソートされる言語のために(一貫してソートされた出力の要件が仕様に追加されていると仮定)。
4/5
andなど5/4
)