マッチ棒を数える


20

ここのほとんどの人は、マッチスティックパズルでも使用される7つのセグメントディスプレイに精通しています。以下の桁です0通じ9や手紙aを通じてz除いて、k,m,t,v,wこの形式で書かれました、。

 _        _   _         _    _    _    _    _
| |   |   _|  _|  |_|  |_   |_     |  |_|  |_|
|_|   |  |_   _|    |   _|  |_|    |  |_|   _|

 _       _      _  _  _                        _   _      _               _
|_| |_  |   _| |_ |_ |   |_  |   | |   _   _  |_| |_|  _ |_      |_| |_|  _|
| | |_| |_ |_| |_ |  |_| | | | |_| |_ | | |_| |     | |   _| |_| | |   | |_

ここでの課題は簡単です。入力文字列を指定して、その文字列を表すために必要なマッチ棒の数を出力します。文字列に上記の表現以外の文字が含まれている場合、それを無視します(0としてカウントします)。

例えば、入力のために53、合計10マッチ棒が、必要とされる5ため55のために3、そう出力されます10

入力の場合hello、合計19マッチ棒が必要なh (4), e (5), l (3), l (3), o (4)ので、出力は19です。

わかりやすくするために、各キャラクターを作成するために必要なマッチスティックを以下に示します。

0 -> 6
1 -> 2
2 -> 5
3 -> 5
4 -> 4
5 -> 5
6 -> 6
7 -> 3
8 -> 7
9 -> 6
a -> 6
b -> 5
c -> 4
d -> 5
e -> 5
f -> 4
g -> 5
h -> 4
i -> 2
j -> 4
l -> 3
n -> 3
o -> 4
p -> 5
q -> 5
r -> 2
s -> 5
u -> 3
x -> 5
y -> 4
z -> 5

ねじれのために、それらの2つがあります。

  • 1つは、入力で大文字小文字が区別されると見なされることです。つまり、Aaのためにすべきであるカウント数の両方6であっても、大文字などの視覚的な表現に見えるけれども、マッチ棒A
  • スコアは、このアルゴリズムを実行したソースコードに加えて、ソースコードのバイト単位の長さであり、低いほど良いです。たとえば、ソースコードがのabc123場合、スコアはになります6+5+4+2+5+5 = 27 + 6 = 33。あなたのソースコードがそうであったなら#&@()*、あなたのスコアはそうでしょう0 + 6 = 6

入出力の例

0    -> 6
53   -> 10
111  -> 6
112  -> 9
8888 -> 28
hello -> 19
PPCG  -> 19
Programming Puzzles & Code Golf -> 99
#&()mt!!~ -> 0
*DḌƤÆE%Ḅċ0 -> 16

ルール

  • 該当する場合は、入力/出力が言語のネイティブ整数型に適合すると想定できます。
  • 入力と出力は、任意の便利な方法で指定できます。
  • 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。
  • 標準的な抜け穴は禁止されています。

2
Tは一般的に|_\n|_(小文字t
12Me21

@ 12Me21私はそのようなことをすることを考えていましたが、私はそれが手紙に十分近く見えるとは思わなかったので、私はそれを省きました。
AdmBorkBork

あなたの手紙X(H)はどうですか?(まあ、答えがあるかどうかは問題ではありません。)
12Me21

外の文字の場合[0-9a-z]、マッチ棒を0個カウントする必要がありますか?あなたのスコアから私が理解しているの、このアルゴリズムを実行したソースコード、ソースコードの長さ(バイト)です。
エリックアウトゴルファー

@EriktheOutgolferはい、それは正しいです。
AdmBorkBork

回答:


8

Python 2、97バイト+ 237一致= 334

lambda w:sum(map(('1ir'*2+'7lnu'*3+'4cfhjoy'*4+'235bdegpqsxz'*5+'069a'*6+'8'*7).count,w.lower()))

オンラインでお試しください!

これは、各ビルド可能なキャラクターがそのキャラクターをビルドするために必要なマッチスティックの量と同じように見える文字列を生成することにより機能します


+'069a8'*6+'8')代わりに1文字を保存できます+'069a'*6+'8'*7)
xbarbie

@xbarbieは確かに、しかしそれはマッチカウントを増やし、+ 3ポイントになります
Rod

6

Perl 5-pF、95バイト+ 14、109

eval~"Û£Ô„…ÊÏÉÎÍÍÊÌÊËËÊÊÉÉÈÌÇÈÆÉžÉʜ˛ʚʙ˘ʗ˖͕˓̑ÌËÊŽÊ͌ʊ̇ʆËÂÐÑИ‚ÒÁ„Ô“œ‚™¿¹"}{

これは次と同等です:

$\+={z506122535445566738796a6b5c4d5e5f4g5h4i2j4l3n3o4p5q5r2s5u3x5y4=~/./g}->{+lc}for@F

ただし、~演算子を使用すると、高バイト文字を使用でき、バイトを実際に犠牲にすることなく多くの文字を回避できます。

支援があったとしても、トンのスコアからはかなり外れています!

オンラインでお試しください!

このソリューションには印刷できないものが含まれているため、バイトカウントを確認するための可逆的な16進ダンプを次に示します。

00000000: 6576 616c 7e22 dba3 d4c2 8485 cacf c9ce  eval~"..........
00000010: cdcd cacc cacb cbca cac9 c9c8 ccc7 c8c6  ................
00000020: c99e c99d ca9c cb9b ca9a ca99 cb98 ca97  ................
00000030: cb96 cd95 cb93 cc91 cc90 cb8f ca8e ca8d  ................
00000040: cd8c ca8a cc87 ca86 cbc2 81d0 d1d0 9882  ................
00000050: d2c1 84d4 939c 8299 908d bfb9 227d 7b    ............"}{

なぜ}{?それと-nオプションをドロップします。また、+lc代わりに忘れてしまいますlc():-)
トンホスペル

@TonHospel Goddammit!私は両方の投稿を見ましたが、どの投稿を見たのか思い出せ+ず、すぐに思い浮かびません!nマシンに必要なのに、ドロップできることを忘れています!
ドムヘイスティングス

申し訳ありませんが、私は間違えました。「ドロップザ}{アンド-p」を意味しました(そして-n、perlがまだ必要な場合は置き換えてください。今日はとにかくカウントされません)
トンホスペル

@TonHospel私はおっと...、最新の私のコードを更新していなかった
ドムヘイスティングス

6

JavaScript(ES6)、198(102バイト+ 96マッチスティック)

@ l4m2のおかげで5ポイント節約

v=>[...v].map(w=>t+=('{w__^_{]|{{_^__^_^w^~]~]^__w_~]~~_^_'[parseInt(w,36)]+v).charCodeAt()%9,t=+[])|t

オンラインでお試しください!

どうやって?

マッチスティックの数をエンコードするためにペナルティを追加しない文字の9を法とするASCIIコードを使用します。

 char. | code | modulo 9
-------+------+-----------------
   ~   |  126 |   0
   v   |  118 |   1  (not used)
   w   |  119 |   2
   ]   |   93 |   3
   ^   |   94 |   4
   _   |   95 |   5
   {   |  123 |   6
   |   |  124 |   7

parseInt()大文字と小文字を区別しないため、大文字と小文字を気にする必要はありません。

一致しない文字については[0-9A-ZA-z]はparseInt()リターンNaNと文字列の検索結果undefined。文字列に強制変換したら、"undefined".charCodeAt()のASCIIコードを返し"u"ている、117。都合の良いことに、117モジュロ9は期待どおり0を与えます


v=>[...v].map(w=>t+='~{w__^_{]|{{_^__^_^w^~]~]^__w_~]~~_^_'.charCodeAt(1+parseInt(w,36))%9,t=+[])|t1少ない
l4m2

5

ゼリー、42バイト+ 0マッチ棒= 42ポイント

“ṄḟṭkɗØæ⁶ṡ“£ƈṠ¤żȥṬ}ė$t¿ƬⱮȷ|çƓ’×/ṚṚæ.ċЀØW$

-2ポイントの@JonathanAllanに感謝します!

オンラインでお試しください!

使い方

“ṄḟṭkɗØæ⁶ṡ“£ƈṠ¤żȥṬ}ė$t¿ƬⱮȷ|çƓ’

split on で始まり、split on で終わるリテラルは、残りの文字をJellyのコードページの1ベースのインデックスに置き換え、全単射250から整数に変換します。

この特定のリテラルエンコード

[3096734725226860846495, 211369264881118657055472842435156679693648].

×/ 乗算により減少し、降伏

654554542403034552503005456545545424030345525030054562554563760

(この整数を直接エンコードすると6バイト節約できますが、28本のマッチ棒が必要です。)

ṚṚ2回反転します。最初の呼び出しは、整数をその数字配列にプロモートします。これにより

[6, 5, 4, 5, 5, 4, 5, 4, 2, 4, 0, 3, 0, 3, 4, 5, 5, 2, 5, 0, 3, 0, 0, 5, 4, 5, 6, 5, 4, 5, 5, 4, 5, 4, 2, 4, 0, 3, 0, 3, 4, 5, 5, 2, 5, 0, 3, 0, 0, 5, 4, 5, 6, 2, 5, 5, 4, 5, 6, 3, 7, 6, 0]

ċЀØW$入力文字列内の"A ... Za ... z0 ... 9_"()ċの各(Ѐ)文字の出現をカウント()します。ØW

最後æ.にドット積を取り、各文字数にマッチスティックの対応するコストを掛けてから、合計を取ります。


大きな数の因数分解を使用して、1バイトDを保存し、別のバイトを保存する代わりに、ベースの解凍とモジュロを保存します。オンラインで試す
ジョナサンアラン

バイト...エラーポイント:)
ジョナサンアラン

1
そしてもう1つƊ。ありがとう!
デニス

3

Perl 5の -p90 64コード+ 9評価ハーネス+ 14マッチ棒= 87

16進コードを、要求されたスコアのリテラル1バイトバリアント(TIOが試行するUTF-8ではない)に置き換えます

eval~"\xdb\xa3\xd4\xc2\x86\xd0\xcf\xd2\xc6\x9e\xd2\x85\xd0\xc9\xcd\xca\xca\xcb\xca\xc9\xcc\xc8\xc9\xc9\xca\xcb\xca\xca\xcb\xca\xcb\xcd\xcb\xcf\xcc\xcf\xcc\xcb\xca\xca\xcd\xca\xcf\xcc\xcf\xcf\xca\xcb\xca\xd0\x8d\x99\x90\x8d\xdf\x93\x9c\xc2\x81\xd0\xd1\xc0\xd0\x98"}{

オンラインでお試しください!

補完された文字列内のコード:

$\+=y/0-9a-z/625545637665455454240303455250300545/rfor lc=~/.?/g

3

Jelly、34バイト+ 3マッチ= 37

⁽[ɱד®-&]Ṙṙ£⁺ÐĊṂⱮɼ ’‘ḤṚæ.ŒlċЀØWṚƊ

文字のリストを受け入れ、整数を返す単項リンク。

オンラインでお試しください!

どうやって?

デニスのゼリーの回答と同様の方法で機能しますが、別の回答が必要だと思うほど十分な努力をしました。コアの違いは、3つの一致のコスト(をŒl含むl)の入力を小文字にすることです。これにより、はるかに小さい数を使用してコスト配列を作成できます。難解な点は、簡潔さを保ちながら一致することなくその数を構成する方法を見つけることでした。

ØW降伏する"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"ため、小文字の入力オカレンスのカウントは常に26個のゼロから始まります。これを逆にして、長さ63の配列の代わりに長さ37の配列でドット積を実行できます。

⁽[ɱד®-&]Ṙṙ£⁺ÐĊṂⱮɼ ’‘ḤṚæ.ŒlċЀØWṚƊ - Link: list of characters
⁽[ɱ                                - literal                                     23913
    “®-&]Ṙṙ£⁺ÐĊṂⱮɼ ’               - literal         136861653160003879166772353166783
   ×                               - multiply  = 3272772712015172762515027281277281879
                    ‘              - increment = 3272772712015172762515027281277281880
                     Ḥ             - double    = 6545545424030345525030054562554563760
                      Ṛ            - reverse (implicit decimal list) -> [0,6,7,3,6,5,4,5,5,2,6,5,4,5,0,0,3,0,5,2,5,5,4,3,0,3,0,4,2,4,5,4,5,5,4,5,6]
                                   -                     (to align with: _ 9 8 7 6 5 4 3 2 1 0 z y x w v u t s r q p o n m l k j i h g f e d c b a)
                                 Ɗ - last four links as a monad:
                         Œl        -   lower-case (the input)
                              ØW   -   word -> "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"
                            Ѐ     -   map across right:
                           ċ       -     count (right character in lower-cased input)
                                Ṛ  -   reverse (to align with the values as shown above)
                       æ.          - dot-product




1

ルビー、125バイト+ 87マッチスティック= 212

->m{v=->w,k{w.scan(/./).map &k};v[m,->t{v["!#&&;&=$(==&;&&;&;#;!$!$;&&#&!$!!&;&",->k{k.ord%11}][t.to_i 36].to_i+(t==?0?6:0)}].sum}

オンラインでお試しください!

ArnauldのJavascript回答に大きく影響を受けています

通常、ラムダを2回だけ使用することを宣言するコストはそれだけの価値はありませんが、マッチスティックの重み " scanap"は.scan(/./).mapそれを変更しました。これは楽しいチャレンジでした!

->m{
  v=->w,k{w.scan(/./).map &k};                # v is a lambda taking a string and a block
  v[m,->t{                                    # Transform each char t of the input:
    v["!#&&;&=$(==&;&&;&;#;!$!$;&&#&!$!!&;&", # Transform each char of this magic string
      ->k{k.ord%11}                           #  into a matchstick count ([0,2,5,5,4,5...])
    ][t.to_i 36]+                             # Parse t as a base 36 index into the counts
    (t==?0?6:0)                               # If t was "0", add 6 matchsticks
  }].sum                                      # Add the counts for all characters
}


1

R、112バイト+ 319マッチ= 431スコア

sum(strtoi(el(strsplit(chartr("0-9a-z","625545637665455454240303455250300545",tolower(scan(,""))),""))),na.rm=T)

オンラインでお試しください!

この改善を思いついたジュゼッペに称賛を。

古いバージョン、143バイト+ 454マッチ= 597スコア

b=el(strsplit(chartr("0123456789abcdefghijlnopqrsuxyz","6255456376654554542433455253545",tolower(readline())),""))
sum(as.numeric(b[b%in%0:9]))

el()関数をTIOで機能させるには、を使用する必要がありますlibrary(methods)

まあそれはくそった、R冗長です!


TIOは、何らかの理由でmethodsパッケージを自動的にロードしませんが、パッケージであるため、base常にヘッダーに押し込み、バイトカウントとしてカウントしません。readlineまた、TIOは対話型セッションではないため、TIOでは機能しません。しかし、これは間違いなくゴルフに適しています。
ジュゼッペ


ただし、スペースを含む入力は引用符で囲む必要があります。
ジュゼッペ

また、Rゴルフのチャットルームを開始しました!私は最近、多くの異なるユーザーによってRで多くの回答を見てきました。これは非常に励みになります。)
ジュゼッペ

@Giuseppe回答を個別に投稿する必要があると思います。それは原理的に異なり、私のものよりもはるかに優れています。
アンドレイKostyrka

1

Perl 6、87バイト+ 26マッチスティック= 113

{+[+] (~'򘮉򛫡񯌞𺪯񯉒񉘁'.ords~~m:g/\w/)[m:g/<[/..{]-[\W_]>/>>.&{:٣٦(~$_)}]}

オンラインでお試しください!

一部の非ASCII Unicode文字を使用します。ルックアップテーブルはUnicode文字列でエンコードされます。

say '򘮉򛫡񯌞𺪯񯉒񉘁'.ords;
# (625545 637665 455454 240303 455250 300545)

文字は、アラビア語-インド数字を使用したbase-36変換でインデックスに変換されます。

:٣٦('z'); # is equivalent to
:36('z');

1

sed、367(ソースコードバイト)+ 532(ソースコードのマッチスティックの量)= 899

s/[^0-9a-jln-suxyz]//Ig;/^$/{s/.*/0/;b};s/.+/&; %1ir %%7lnu %%%4cfhjoy %%%%235bdegpqsxz %%%%%069a %%%%%%8/;:1;s/([^% ])(.+ (%+)[^ ]*\1)/%\3 \2/I;/ ;/!b1;s/;.+//;s/^/,;/;:2;s/(;[^%]*)(%+)/\2\1/;:3;s/,%{10}/%,/;s/^%/,&/;/%{10}/b3;/;.*%/b2;:4;s/,[;,]/,0,/;/,[;,]/b4;s/%{9}/9/g;s/%{8}/8/g;s/%{7}/7/g;s/%{6}/6/g;s/%{5}/5/g;s/%%%%/4/g;s/%%%/3/g;s/%%/2/g;s/%/1/g;s/[^0-9]//g

オンラインで試す

複数行バージョン:

s/[^0-9a-jln-suxyz]//Ig
/^$/{s/.*/0/;b}
s/.+/&; %1ir %%7lnu %%%4cfhjoy %%%%235bdegpqsxz %%%%%069a %%%%%%8/
:1
s/([^% ])(.+ (%+)[^ ]*\1)/%\3 \2/I
/ ;/!b1
s/;.+//
s/^/,;/
:2
s/(;[^%]*)(%+)/\2\1/
:3
s/,%{10}/%,/
s/^%/,&/
/%{10}/b3
/;.*%/b2
:4
s/,[;,]/,0,/
/,[;,]/b4
s/%{9}/9/g
s/%{8}/8/g
s/%{7}/7/g
s/%{6}/6/g
s/%{5}/5/g
s/%%%%/4/g
s/%%%/3/g
s/%%/2/g
s/%/1/g
s/[^0-9]//g

説明:

上記のスクリプトは、標準入力を1行ずつ(パターンスペースに-通常の「sed way」で)読み取り、各行について、その行のすべてのマッチスティックで表現可能な文字を表すのに必要なマッチスティックの量を出力します。入力の各行の計算は次のように行われます。


s/[^0-9a-jln-suxyz]//Ig

最初に、対応するマッチスティック表現(質問で与えられる)を持たないすべての文字をパターンスペースから削除します。つまり、「0」から「9」までの数字、「a」から「j」までの文字、「n」から「s」、「l」、「u」のいずれでもないすべての文字を削除します。 「x」、「y」または「z」。大文字と小文字は同じように扱われます。

/^$/{s/.*/0/;b}

空のパターンスペースになった場合は、0(特別なフラグを渡さない限りsedが常に行うように自動的に改行が続く)を出力し、スクリプトのすべての後行をスキップして、次の「sedサイクル」に進みます(つまり、入力の次の行を読み取り、処理する入力の行がなくなるまで最初のコマンドから処理を繰り返します。

s/.+/&; %1ir %%7lnu %%%4cfhjoy %%%%235bdegpqsxz %%%%%069a %%%%%%8/

そうではなく、パターンスペースが空でない場合、セミコロンで区切られた2つの「サブスペース」に分割します。 入力スペースます。入力スペースは、最初にパターンスペースから削除されなかったすべての文字によって形成されます行1の実行。次はセミコロンで、その後はマップスペースです。

マップスペースは、関連する各英数字を表すために1以外のマッチスティックがいくつ必要かを示しています。マップスペース内の英数字を表すために必要なマッチスティックの数を知りたい場合は、その文字の左側にある連続した%の最初のシーケンスを探します。答えは、%の数ですそのシーケンスに1を加えたものです。したがって、たとえば、「b」を表すのに必要なマッチスティックの数は4 + 1 = 5です。「4」を表すには、3 + 1 = 4、「y」を表すには、3 + 1 = 4。等々。

:1
s/([^% ])(.+ (%+)[^ ]*\1)/%\3 \2/I
/ ;/!b1

これはループです。入力スペースのすべての文字を%の(完全な)シーケンスで置き換えます。このシーケンスの番号は、その文字を表すために必要なマッチスティックの量を示し、そのシーケンスの後に空白文字(再び、大文字、小文字が続きます)同じ治療を与えられた)。ループを終了するかどうかを判断する基準は、パターンスペースのセミコロンのすぐ左に空白文字があるかどうかを確認することです。その条件が成立する場合、ループを終了して次の行に進みます。

s/;.+//
s/^/,;/

これらの2行は、セミコロンとその後のすべてをパターンスペースから削除し、コンマとセミコロンをパターンスペースの先頭に挿入します。これで、パターンスペースが再び2つの新しいサブスペースに分割されました。セミコロンの前のアナログ結果スペースと、その後のアナログ入力スペースです。

アナログ入力スペースは、以前は「入力スペース」と呼んでいたものですが、別の形式では、空白で区切られた%のシーケンスが含まれています。アナログ入力スペースにあるそのような%の総数は、初期入力文字列を表すのに必要なマッチスティックの数と同じです。つまり、その数が結果になります。ただし、その結果をパーセント記号のシーケンスとしてではなく、10進表記で出力する必要があります。アナログ結果空間の目的は、結果の各桁のアナログ表現を保持する一方で、アナログ入力空間で%の連続する各シーケンスを1つずつ合計することで結果を計算することです。次のループはその合計を実行します。

:2
s/(;[^%]*)(%+)/\2\1/
    :3
    s/,%{10}/%,/
    s/^%/,&/
    /%{10}/b3
/;.*%/b2
  1. まず、ラベル2の後、セミコロンの後の次の連続した%のシーケンスをアナログ入力スペースからアナログ結果スペースのセミコロンのすぐ左に移動します。

  2. 次に、次の計算を実行するサブループ(ラベル3)に進みます。

    • アナログ結果スペースのコンマの後に連続する10%のシーケンスがある場合、それらの%を削除し、コンマの左側に単一の%をすぐに配置します。簡単に言えば、これは、結果の小数点以下の1つが9単位を超えていることを示しているため、その小数点から10単位を取り、次に大きい小数点に1単位を追加します。

    • 「%」がパターンスペースの最初の文字である場合、その直前に新しいコンマを挿入します。これは、合計が、前の値よりも左側に小数点が1つ多い10進表現の値に達したことを示します。

    • アナログ結果スペースに10%の連続シーケンスがまだある場合は、ラベル3に戻ってこのプロセスを繰り返します。それ以外の場合は、このサブループを終了して、次の行に進みます。

  3. ここで、アナログ入力スペース(つまり、セミコロンの後)に「%」がまだある場合、合計に追加するマッチスティックがまだあることを意味します。したがって、ラベル2に戻ります。

合計が完了すると、コードの最後のループに進みます。

:4
s/,[;,]/,0,/
/,[;,]/b4

ここでは、左側のコンマと右側のセミコロンまたはコンマのいずれかによって形成された文字のすべてのペアをチェックします。このような文字のペアはすべて、2つのコンマの内側の「0」に置き換えます。

s/%{9}/9/g
s/%{8}/8/g
s/%{7}/7/g
s/%{6}/6/g
s/%{5}/5/g
s/%%%%/4/g
s/%%%/3/g
s/%%/2/g
s/%/1/g

上記のコードは非常に単純です。アナログ結果スペースの%の連続する各シーケンスを、特定の各シーケンスの%の数に対応する10進数字文字に置き換えます。

s/[^0-9]//g

最後に、パターン空間から数字以外の文字をすべて削除します。残っているのは、使い慣れた10進表記の最終結果です。その値は標準出力に出力され、処理する入力行がさらにある場合は、次のsedサイクルが開始されます。




1

Java 10、452 432 416 404スコア(145バイト+ 259マッチ)

k->{int m=0,t;for(var w:k)for(t=m-m;t<'';)m+="1ir 7lnu 4cfhjoy 235bdegpqsxz 069a 8".split(" ")[t++].contains((char)(w|32)+"")?-~t:t-t;return m;}

説明:

オンラインでお試しください。

k->{                   // Method with character-array parameter and int return-type
  int m=0,             //  Result-integer, starting at 0
      t;               //  Index-integer
  for(var w:k)         //  Loop over the input String-array
    for(t=m-m;t<'';)   //   Inner loop over the parts array with index [0,6)
      m+="1ir 7lnu 4cfhjoy 235bdegpqsxz 069a 8".split(" ")[t++]
                       //     If the current part ordered by amount of matches (2-8)
         .contains((char)(w|32)+"")?
                       //     contains the current (lowercase) letter
          -~t          //      Increase the result by the index + 2
         :             //     Else:
          t-t;         //      The result remains the same by adding 0
  return m;}           //  Return the result
  • $ραετ文字の代わりに変数名が使用されます。編集:kmtvwチャレンジの説明による一致によって変数を形成できないため、変数名が代わりに使用されるようになりました。
  • ''(印刷不可)はの代わりに使用されます6
  • m-mとのt-t代わりに使用されます0
  • (char)(w|32)+""文字列配列入力ではなく、文字配列入力を使用しw.toLowerCase()ます。

0

AutoHotkey、148バイト+ 345マッチスティック= 493

これは短くするのが少し難しいものでした。

n:=["1ir","7lnu","4cfhjoy","235bdegpqsxz","09a5",7+1]
Loop Parse,i
{r:=A_LoopField
Loop % n.Length()
{l:=A_Index
if InStr(n[l],r)
u+=l+1
}}
send % u


0

、48バイト+ 3 = 51

IΣEθ⎇№α↥ιI§”)➙⊞←!Σw➙⊙↘⁴↘”⌕α↥ι∧№IX²φιI§”)⧴u↑$◨”Iι

オンラインでお試しください!リンクは、コードの詳細バージョンです。説明:

IΣEθ

入力の文字をループ処理して、それぞれのマッチスティックの数を計算し、結果を合計し、文字列に変換して、暗黙的に印刷します。

⎇№α↥ι

手紙なら...

I§”)➙⊞←!Σw➙⊙↘⁴↘”⌕α↥ι

圧縮された文字列のマッチスティックの数を調べます65455454240303455250300545

∧№IX²φι

それ以外の場合、2 ** 1000...

I§”)⧴u↑$◨”Iι

圧縮された文字列のマッチスティックの数を調べます6255456376


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.