Par: 250
Hole 2: BPEagle
アルファベット小文字と半角スペースを用いて分かち書きされたテキストが標準入力で与えられます。このテキストを以下のルールに従って圧縮してください。
1. テキストを半角スペースで分割し、単語にわけます
入力例: launchpad launchsite launchcrew
処理例: ["launchpad", "launchsite", "launchcrew"]
2. それぞれの単語の中で、隣り合う文字についてペアを作ります
処理例: ["la", "au", "un", "nc", "ch", "hp", "pa", "ad", "la", "au", "un", "nc", "ch", "hs", "si", "it", "te", "la", "au", "un", "nc", "ch", "hc", "cr", "re", "ew"]
3. それぞれのペアの出現頻度を調べます
処理例: { "la": 3, "au": 3, "un": 3, "nc": 3, "ch": 3, "hp": 1, "pa": 1, "ad": 1, "hs": 1, "si": 1, "it": 1, "te": 1, "hc": 1, "cr": 1, "re": 1, "ew": 1 }
4. 最も多いペアを1つ見つけてそれをAに置き換えて元の文に戻します。また置き換えたペアを記録します
最も出現頻度が多いペアが複数ある場合は、文章中で最初に出現したものを選びます。
また、置き換えたペアは辞書の形で記録します。辞書のキーはA, B, C...の順に割り当てます。
処理例: ["Aunchpad", "Aunchsite", "Aunchcrew"], { "A": "la" }
5. 2〜4を繰り返します。全ての頻度が1になるまで繰り返します
["Aunchpad", "Aunchsite", "Aunchcrew"],{ "A": "la" }["Bnchpad", "Bnchsite", "Bnchcrew"],{ "A": "la", "B": "Au" }["Cchpad", "Cchsite", "Cchcrew"],{ "A": "la", "B": "Au", "C": "Bn" }["Dhpad", "Dhsite", "Dhcrew"],{ "A": "la", "B": "Au", "C": "Bn", "D": "Cc" }["Epad", "Esite", "Ecrew"],{ "A": "la", "B": "Au", "C": "Bn", "D": "Cc", "E": "Dh" }
6. 最終的に圧縮されたテキストと置き換えたペアを以下の形で出力します
1行目が置き換えたペア(辞書)をカンマ区切りで表したもの、2行目が圧縮されたテキストになります。
出力例:
A:la,B:Au,C:Bn,D:Cc,E:Dh
Epad Esite Ecrew
Leaderboard
| Rank | Score | Name | Code bytes | Language |
|---|---|---|---|---|
| -147 | mame | 103 | Ruby | |
| -145 | tompng | 105 | Ruby | |
| -143 | nsfisis | 107 | Ruby | |
| -142 | kurain | 108 | Ruby | |
| -141 | orisano | 109 | Ruby | |
| -141 | alpaca-tc | 109 | Ruby | |
| -140 | uskey512 | 110 | Ruby | |
| -139 | mihyaeru21 | 111 | Ruby | |
| -137 | ucks | 113 | Ruby | |
| -134 | ken39arg | 116 | Ruby | |
| -119 | moznion | 131 | Perl | |
| -101 | いっちー | 149 | Perl | |
| -95 | takaram | 155 | Ruby | |
| -90 | alcea | 160 | Python | |
| -80 | tmtms | 170 | Ruby | |
| -67 | ohbarye | 183 | Ruby | |
| -60 | uskey512 | 190 | Perl | |
| -55 | progfay | 195 | Python | |
| -42 | ydah | 208 | Ruby | |
| -36 | ukzk | 214 | Ruby | |
| -23 | john smith | 227 | Perl | |
| -7 | nsfisis | 243 | Perl | |
| +33 | takaram | 283 | PHP | |
| +63 | nsfisis | 313 | Python | |
| +71 | nsfisis | 321 | PHP | |
| +71 | progfay | 321 | JavaScript | |
| +71 | do7be | 321 | JavaScript | |
| +125 | nsfisis | 375 | JavaScript | |
| +234 | piro | 484 | PHP | |
| +334 | Konboi | 584 | Python | |
| +440 | fujiwara | 690 | Perl | |
| +688 | pastak | 938 | JavaScript | |
| +1476 | shmokmt | 1726 | Ruby | |
| +2169 | stefafafan | 2419 | Perl | |
| +2229 | katsyoshi | 2479 | Ruby | |
| +2715 | yamamoto | 2965 | Perl | |
| +2798 | mihyaeru21 | 3048 | Perl | |
| +3284 | う | 3534 | PHP | |
| +3380 | マコピー | 3630 | PHP | |
| +3532 | いっちー | 3782 | JavaScript |
Write Code Here
さんの回答
Score:
Status:
Result