あまりにも多くの異なる文字を使用せずに母音を削除する


11

課題は、STDINから文字列から母音(a、e、i、o、u)を削除することです(はい、わかっています、単純です)。あなたはあなたのプログラムがの引数なしで実行されないことを期待することができますargv

例:

This program will remove VOWELS.
So we can now speak without them.

に変更されます:

Ths prgrm wll rmv VWLS.
S w cn nw spk wtht thm.

キャッチがあります。受賞エントリは、異なるバイト数に基づいて決定されます。たとえば、a ab3つの異なるバイト(abおよびスペース)があります。2つ以上のエントリにこの同じ量の異なるバイトがある場合、それらのエントリのバイト数でフォールバックが行われます。


9
ホワイトスペース言語の仕事
-jfs

入力はRenée’s naïvetéどうですか?母音を取り除いて、もちろんRn’s nvt出力として使用する必要があり ます。あなたが私に尋ねると、これらのアプローチはすべてかなり素朴なようです。:)
tchrist

éを削除する場合は、yも削除する必要があります。
ユーザー不明

4
@tchrist、質問を読んでください。a、e、i、o、uを削除すると言います。トピック外です。ドロップしてください。
ブースバイ

1
@tchrist:特に課題は「すべての母音」は言わず、取り外し可能と見なすべきものを列挙しました。
ユーザー不明

回答:


2

バイナリ空白(2つの異なる文字、合計324文字)

TTSSSTTSSSSTTTSTTTSSSSSSTTSSSTSSSSSSTSTTSSSTSSSSTSSTSTTSSSTSSSTSSSTSTTSSSTSSSTSTSTSTSTTSSSTSSTSSTSSTSTTSSSTSTSSSSSTSTTSSSTSTSSSTSSTSTTSSSTSTSSTSSSTSTTSSSTSTSSTSTSTSTSTTSSSTSTSTSSTSSTSTTTTSSSTSTTSTTSTTTSSTSTTSSSSTTTSTSTSTSSSTSTTTSSTTTTSTTSTSTTTTSSTTTTTSSSTTTTSTTTTTTSSTSTTSSSSTTTSTSTSSTTSTTTSSSSTTTSTTSSTTSTTSTTTTSSSSTTTTTTTT

ここで、S、T、LはそれぞれSpace、Tab、Linefeedを示します。(「ブレッドボックス」によるホワイトスペースの回答をバイナリホワイトスペースに変換することで恥知らずに得られた-この投稿はおそらく彼の回答へのコメントであるはずですが、長すぎます。)

バイナリホワイトスペースは、Tの代わりにTSを使用し、Lの代わりにTTを使用して、どこでもプレフィックスコード言語に変換されたホワイトスペースです。たとえば、-5をスタックにプッシュするBWS命令は、SSTTSTLなどの代わりにSSTSTSSTSTTなどです。リンク:任意の3シンボル言語とそのバイナリプレフィックスコードバージョンの双方向トランスレータ

NB:文字列ではなくビット列とみなされるバイナリホワイトスペースプログラムの真のビット単位のインタープリターを設計するのは簡単です(たとえば、S、T文字の代わりにそれぞれ0,1ビット値を使用します)。上記は、41バイトのストレージを必要とする324 ビットプログラムになります。


13

Brainfuck、8種類(合計2121)

>,+[-<>>>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>[-]++<[-<+>>>>->>>->>>->>>->>>->>>->>>->>>->>>->>>-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[<<<]+>-[<-<.>>-]<[<<<]<[-]>,+]

識別文字:<>+-[],.。使用通訳付き作品-1のためにEOF

$ echo '
このプログラムはVOWELSを削除します。
だから、今、彼らなしで話すことができます。
'| bf vowel-rm.bf

Ths prgrm wll rmv VWLS。
Sw cn nw spk wtht thm。


1
前述の要件により、これが最良の答えです。しかし、OTOH は、その言語のすべての構文的に重要な文字を使用するという点で最悪です。
dan04

3
@tchrist:ASCIIを想定しています。とにかく、{a、e、i、o、u}だけが要件にあります。
ジョンパーディ

1
では、に変えRenée’s naïvetéても大丈夫Rń’s n̈vt́ですか?それは私には正しくないと思われますが、あなたがそう言うなら。あなたが任意の正規化を負いかねますので、その完全に合理的でRenée’s naïveté本当に"Rene\N{COMBINING ACUTE ACCENT}e\N{RIGHT SINGLE QUOTATION MARK}s nai\N{COMBINING DIAERESIS}vete\N{COMBINING ACUTE ACCENT}"あなたがマジックナンバーを好む場合、または- "Rene\x{301}e\x{2019}s nai\x{308}vete\x{301}"。付随する発音区別符号なしで母音を削除すると、極端な愚かさを感じることになります。ブレイブニューミレニアムへようこそ!:)
tchrist

1
単項式を使用すると、1つの異なるキャラクターだけができます!:-P esolangs.org/wiki/Unary
marinus

3
@marinus、これをUnaryに変換し、1.166921663690E+1824それを格納するためにバイトが必要なだけです(pastebinに正確な数値をアップロードしましたが、このコメントに収まりません)。このサイトに送信するのにどれくらい時間がかかるのだろうか。
コンラッドボロ

10

空白、3ポイント(218文字)

あなたはそれが来ることを知っていました。

↲___↲____↲⇥↲⇥_____↲___⇥_____⇥↲___⇥___⇥_⇥↲___⇥__⇥__⇥↲___⇥__⇥⇥⇥⇥↲___⇥_⇥_⇥_⇥
↲___⇥⇥____⇥↲___⇥⇥__⇥_⇥↲___⇥⇥_⇥__⇥↲___⇥⇥_⇥⇥⇥⇥↲___⇥⇥⇥_⇥_⇥↲↲___⇥↲_↲_↲⇥_⇥↲___
_↲⇥⇥⇥⇥__⇥↲⇥_↲↲_↲_⇥↲↲__↲↲⇥__↲↲_↲↲↲__⇥↲____↲⇥⇥⇥_↲_↲⇥___↲⇥↲__↲_↲_↲↲____↲↲↲↲

(_ =スペース、⇥=タブ、↲=改行)

base64でエンコードされたスクリプトは次のとおりです。

CiAgIAogICAgCgkKCSAgICAgCiAgIAkgICAgIAkKICAgCSAgIAkgCQogICAJICAJICAJCiAgIAkg
IAkJCQkKICAgCSAJIAkgCQogICAJCSAgICAJCiAgIAkJICAJIAkKICAgCQkgCSAgCQogICAJCSAJ
CQkJCiAgIAkJCSAJIAkKCiAgIAkKIAogCgkgCQogICAgCgkJCQkgIAkKCSAKCiAKIAkKCiAgCgoJ
ICAKCiAKCgogIAkKICAgIAoJCQkgCiAKCSAgIAoJCiAgCiAKIAoKICAgIAoKCgo=

そして、これは目に見えるアセンブラーのような形式で書かれたプログラムです:

ioloop: charin  0
        push    0, 'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'
ckloop: dup
        jz      out
        get     0
        sub
        jz      skip
        jump    ckloop
skip:   jz      ioloop
        jump    skip
out:    get     0
        dup
        jz      done
        charout
        jump    ioloop
done:   exit

Acme :: Bleachのような匂い。:)
tchrist

「シンボリック」プログラムをホワイトスペースに変換すると、致命的な構文エラーが発生します。
解像度

それは変です。変換を行う前に実際の改行を削除することを覚えていましたか?実際のスクリプトのbase64エンコードを含める必要があります。
パンボックス

1
はい、私はそれをしました-あなたのbase64バージョンは私が使用しているものに正確にデコードします。「STL」バージョン(それぞれS、T、LコーディングSpace、Tab、Linefeedを使用)は次のとおりLSSSLSSSLTLTSSSSLSSSTSSSSSTLSSSTSSSTSTLSSSTSSTSSTLSSSTSSTTTTLSSSTSTSTSTLSSSTTSS‌​SSTLSSSTTSSTSTLSSSTTSTSSTLSSSTTSTTTTLSSSTTTSTSTLLSSSTLSLSLTSTLSSSLTTTTSSTLTSLLSLS‌​TLLSSLLTSSLLSLLLSSTLSSSLTTTSLSLTSSSLTLSSLSLSLLSSSSLLLLです。(特に)2つの問題SSSLSSSSL、の代わりに0をスタックにプッシュしようとしていることと、LSSLfor を使用して「空の」ラベルを定義しようとしていることのようですskip
解像度

1
遅れて申し訳ありません...私は実際に、Edwin BradyのWhitespaceインタープリターバージョン0.3(Linuxバイナリー) が実際にあなたのプログラムを文句なしに実行することを確認しました。Rubyの実装(同じページで利用可能)を使用しているため、使用している構文は許可されません。
解像度

8

SED(10個の異なるバイト、合計13個)

s/[aeIou]//gI

サンプル使用法:

echo The quick brown fox jumps over the lazy dOg. | sed -e s/[aeIou]//gI

出力:

Th qck brwn fx jmps vr th lzy dg.

ただ、なぜI大文字なのでしょうか?I文字が小文字の場合は正常に機能します。
コンラッドボロウスキ

2
@GlitchMr Iキャラクターが再利用されることを強調するためにそれをしただけです。
クリスチャンルパスク

1
@tchrist OPは彼の投稿でフランス語の母音に言及したとは思わない。また、私はナイーブなプログラムを書くのが好きです。:-)
クリスチャンルパスク

3
あなたの例では間違いöなくï誤用されており、他の2つは子音です。それでも、あなたにはポイントがあると思います。しかし、この方法では、最終的にò̟̣̱͉̙t̝͔͖͇͙̦̝h̵̩e͎r͓̥ ̱̼̞̰̠͔k̞̝̮̕i̴̘̟̬̠n̻͜d̦̰̼̰͔s͈̺̝̭ ̫̺͔̠̭̖o̼f̲͓̮͘v̳̙͔̝o͔̭̫͕͢ẃ̜͉̪̩̗e̻͔̺̬̣ĺs͖̭̮もサポートすることになります。おそらく、,slǝʍoʌuʍopǝpısdn,,
クリスチャンルパスク

1
@ w0lfは、これらの用途öとはï、彼らはほぼ今消えてきたものの、一度、英語で発見されました。
ジョー

7

C、22 20 19個の異なる文字。

以下のために必要な文字mainputchargetchar= 12
句読点- (){};= 5.
演算子- &-= 2。

i;ii;
p(c){
    (c&ii-(-ii-ii))-(i-ii-ii-ii-ii-ii-ii)&&
    (c&ii-(-ii-ii))-(i-ii-ii-ii-ii-ii-ii-i-i-i-i)&&
    (c&ii-(-ii-ii))-(i-ii-ii-ii-ii-ii-ii-ii-(-i-i-i))&&
    (c&ii-(-ii-ii))-(-ii-ii-ii-ii-ii-ii-ii-i-i)&&
    (c&ii-(-ii-ii))-(i-ii-ii-ii-ii-ii-ii-ii-ii-(-i-i))&&
    putchar(c);
}
a(c){c-i&&n(p(c));}
n(c){a(getchar());}
main(){
    n(i---ii---ii---ii---ii---ii---ii---ii---ii---ii---ii---ii---i);
}

main未定義の動作を呼び出します(--1行で多すぎる)。
式の値は気にせずii、正しい回数だけ減少します。
でデクリメントを分離することで簡単に修正できます;。しかし、それは非常に優れています。

古いバージョン、20文字:
実際には21。一部のスペースが重要であり、カウントする必要があることに気づかなかったが、括弧で簡単に置き換えることができるため。

ii;iii;c;a;
main(i){
    i=c;i-=--c;
    ii=-i-i-i-i-i-i-i-i-i-i-i;
    iii=i-ii-ii-ii-ii-ii-ii-ii-ii-ii-ii;
    -(c=a=getchar())-i&&main(
        (c&=ii- -ii- -ii)- -            a&&
        -ii-ii-ii-ii-ii-ii-  i-         c&&
        -ii-ii-ii-ii-ii-ii- -i- -i- -i- c&&
        iii- -ii- -ii- -ii-  i-i-i-i-i- c&&
        iii- -ii- -ii- -ii- -i-         c&&
        iii- -ii- -ii-       i-i-i-i-   c&&
        putchar(a));
}

でコンパイルしgcc -nostartfiles、に名前mainを変更することで、おそらくさらに改善できます_startmin(いくつかの変数の名前変更後)が削除され、_s追加されました。しかし、その後exit()、3文字を追加するを使用する必要があります。
の代わりに_start、任意の名前を使用でき、Linuxで機能します。これにより、18文字まで下げることができますが、非常に非標準です。


6

Perl:8または10個の異なる文字

s/// 解決策:10の異なる、合計13

(意図されている。以下を参照)sedテクニックは常にperlでも機能し、異なる文字の名前番号を生成します(10):

s/[aeiou]//gi

例えば:

$ echo 'This program will remove VOWELS. So we can speak without them.' | 
  perl -ple 's/[aeiou]//gi'
Ths prgrm wll rmv VWLS. S w cn spk wtht thm.

これが証明するように、これは10の異なる文字です。

$ echo 's/[aeiou]//gi' | perl -nle '@s{split//}=(); print scalar keys %s'
10

sedの解決策の問題は、そのがいることである/iであるではないのsed POSIXの一部は、したがって、移植性がありません。

$ echo 'This program will remove VOWELS. So we can speak without them.' | 
  sed -e 's/[aeiou]//gi'
sed: 1: "s/[aeiou]//gi": bad flag in substitute command: 'i'

これはOpenBSDシステムで実行されています。対照的に、/i実際には常に標準perlの一部であるため、常に存在することを期待できます。sedとは異なり。

母音のリストに「y」を含めたい場合、同じ手法を使用すると、もちろん1つ大きくなります。

$ echo 'This nifty program remove any VOWELS. So we easily can speak without them.' | 
  perl -ple 's/[aeiouy]//gi'
Ths nft prgrm rmv n VWLS. S w sl cn spk wtht thm.

$ echo 's/[aeiouy]//gi' | perl -nle '@s{split//}=(); print scalar keys %s'
11

そして現在、合計14文字です。

tr[][] 解決策:8つの異なる10合計

tr///一致するものはすべて削除することもできます。Perlはsedのy///エイリアスも使用できますtr

y/aeiou//d

現在は8つの異なる文字ですが、大文字では機能しません。ケースマップに対処するには、さらに5文字を追加する必要があります。

$ echo 'y/aeiouAEIOU//d' | perl -nle '@s{split//}=(); print scalar keys %s'
13

そしてもちろん、それは合計15です。

ただし、「y」を母音としてミックスに追加しても、s///バージョンで行ったように異なる文字の数は増えません。

$ echo 'This nifty program remove any VOWELS. So we easily can speak without them.' | 
  perl -ple 'y/aeiouy//d'
Ths nft prgrm rmv n VOWELS. S w sl cn spk wtht thm.

したがって、これはまだ合計11個のうち8個だけです。

$ echo 'y/aeiouy//d' | perl -nle '@s{split//}=(); print scalar keys %s'
8

編集:発音区別符号の会計

そして、入力のようなものはどうRenée’s naïvetéですか?正しい出力はもちろんですRn’s nvt。以下にv5.14の/rフラグを使用して、これを行う方法を示しますs///

$ echo 'Renée’s naïveté' |
  perl5.14.0 -CS -MUnicode::Normalize -nle 'print NFD($_)=~s/[aeiou]\pM*//rgi'
Rn’s nvt

それは27の異なる文字です:

$ echo 'print NFD($_) =~ s/[aeiou]\pM*//rgi' | 
  perl -nle '@s{split//}=(); print scalar keys %s'
27

あなたはスワップアウトすることにより、少なくともV5.10で実行していることを保証できる場合は、26にいることをトリミングすることができprintためにsay

$ echo 'Renée’s naïveté' |
  perl -Mv5.14 -CS -MUnicode::Normalize -nlE 'say NFD($_) =~ s/[aeiou]\pM*//rgi'
Rn’s nvt

$ echo 'say NFD($_) =~ s/[aeiou]\pM*//rgi' | 
  perl -nle '@s{split//}=(); print scalar keys %s'
26

また、発音区別記号を削除する代わりに移動することを気にしない場合は、22まで下げることができます。

$ echo 'Renée’s naïveté' |
  perl -Mv5.14 -CS -MUnicode::Normalize -nlE 'say NFD($_) =~ s/[aeiou]//rgi'
Rń’s n̈vt́

控えめに言っても、これは... 興味深いものです。:)以下がその個別カウントです。

$ echo 'say NFD($_) =~ s/[aeiou]//rgi' | 
  perl -nle '@s{split//}=(); print scalar keys %s'
22

これより少ない文字を使用して発音区別符号に適切に対処するために、他の言語を入手してください!


1
ββαβουτ𝐝𝐢𝐚𝐜𝐫𝐢𝐭𝐢𝐜𝐬𝑦𝑜𝑢𝒈𝒐𝒕𝓽𝓱𝓮𝓻𝓮𝓽𝓱𝓮𝓻𝓮𝒷𝓋𝓉𝔥𝔬𝔴𝕋ℍ𝕀𝕊𝕋ℍ𝕀𝕊𝕋ℍ𝕀𝕊𝕋ℍ𝕀𝕊𝕋ℍ𝕀𝕊
反時計回りの回転を停止

@leftaroundaboutそのほとんどは、NFKD分解にコミットすることで修正されています。ギリシア人は似ているとはいえカウントされず、スモールキャップはレギュラーに分解されません。結果は"ɢᴏᴏᴅ ᴘnt αβουτ dcrtcs y gt thr, bvt hw bt stff lk THS"、または"\N{LATIN LETTER SMALL CAPITAL G}\N{LATIN LETTER SMALL CAPITAL O}\N{LATIN LETTER SMALL CAPITAL O}\N{LATIN LETTER SMALL CAPITAL D} \N{LATIN LETTER SMALL CAPITAL P}nt \N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER OMICRON}\N{GREEK SMALL LETTER UPSILON}\N{GREEK SMALL LETTER TAU} dcrtcs y gt thr, bvt hw bt stff lk THS"です。
-tchrist

しかし、互換性の分解を持っていないいくつかのラテン語の母音、などがありますされていますø
dan04

5
課題は、発音区別記号付きの母音を削除するには言っていない-ただ、Eを、私は、O、U -そうRenée’s naïveté与える必要がありますRné’s nïvté
ブースバイ

2
äèïóűなど([a、e、i、o、u]ではない!)がギリシャ語の母音をカウントしないのはなぜですか?または、キリル文字(そのようなものではありませんが、見た目は似ていますが、母音は十分です)。
counterclockwis回すのをやめ

5

GolfScript(7つの異なるバイト、合計103)

w0lf答えに対する十分な改善は、別のものとしての資格があると思います。

[9-99))--9+99))99))))))99)9+))9-9)99--)99-9+9--9+9-))99-9+9)))--9+99-9+-9+9-)99-9+9)))-)99)9-9-)))]''+-

12個の異なるバイト、合計13個:

'aeiouAEIOU'-

すごい!もう一度あなたに賛成できたらいいなと思います。
クリスチャンルパスク

4

Golfscript(8つの異なるバイト、合計837)

[9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 9))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))]''+-

説明:

  1. プログラムは、次の整数値の配列を作成します:([97 101 105 111 117 65 69 73 79 85]のASCIIコードに対応a,e,i,o,u,A,E,I,O,U)。各数値は、スタックにvalueをプッシュすることで表され9、その後に必要な数)(インクリメント演算子)が続きます。たとえば、番号67958 )s を使用して取得されます
  2. を使用して''+、配列は"a,e,i,o,u,A,E,I,O,U"すべての母音を表す文字列に変換されます
  3. 次に、減算記号( '-')を使用して、ソース文字列からすべての母音を減算します

使用された8つのユニークな文字:[]9)+-'および(space)


4

判読不能(2つの異なる、合計2666)

誰もがチューリングのターピットを投稿しているので、私はこれを使用すると思いました。あまりよく知られているものではありませんが、存在し(http://esolangs.org/wiki/Unreadable)、2文字しかありません。

'""""'""""'""""'""""""'"""'""'""'""'""'""'""'""'""'""'"""'""""'"""""'"""""""'"""'""""'"""
"'""""'""""""'"""'""""""""'"""""""'"""'""""""'""'"""'""'""'""'""'""'""'"""""""'""'"""'"""
"'""""""'""'""'"""'""'""'""'""'""'""'""'"""""""'""'""'"""'""""""'""'""'""'"""'""'""'""'""
'""'""'""'""'"""""""'""'""'""'"""'""""'""""'""""""'""'""'""'""'"""'""'""'""'""'""'""'""'"
"'""'"""""""'""'""'""'""'"""'""""""'""'""'""'""'""'"""'""'""'""'""'""'""'""'""'""'""'""""
"""'""'""'""'""'""'"""'""""'""""""'""'""'""'""'""'""'"""'""'""'""'""'""'""'""'""'""'""'""
'"""""""'""'""'""'""'""'""'"""'""""""'""'""'""'""'""'""'""'"""'""'""'""'""'""'""'""'""'""
'""'""'""'"""""""'""'""'""'""'""'""'""'"""'""""""'""'""'""'""'""'""'""'""'""'""'"""'"""""
"""'""""""""'"""""""'""'""'""'""'""'""'""'"""'""""'""""""'""'""'""'""'""'""'""'""'""'"""'
""'""'"""""""'""'""'""'""'""'""'"""'""""'""""""'""'""'""'""'""'""'""'""'"""'""""""""'""""
""""'""""""""'""""""""'"""""""'""'""'""'""'""'""'"""'""""""'""'""'""'""'""'""'""'"""'""'"
"'"""""""'""'""'""'""'""'"""'""""'""""'""""""'""'""'""'""'""'""'"""'""""""""'""""""""'"""
""""'""'""'""'""'""'"""'""""'""""""'""'""'""'""'""'"""'""""""""'""""""""'""""""""'"""""""
"'"""""""'""'""'""'""'"""'""""""'""'""'""'""'"""'"""""""'""'""'""'"""'""""'""""'""""""'""
'""'""'"""'""'""'""'""'"""""""'""'""'"""'""""""'""'"""'""'""'""'""'""'""'"""""""'""'"""'"
"""'""""""'"""'""'""""""""""'"""""'"""""""'"""'""""'""""'""""""'""'""'""'""'""'""'""'""'"
"'""'""'"""'""'""'""'""'""'""'""'""'""'""'"""'""""""'""'""'""'""'""'""'""'""'""'""'""'""'
"""'""""""""'"""'""""'"""""""""'""""""""'"""""""'""'""'""'""'""'""'""'""'""'""'""'"""'"""
""'""""""""'"""""""'""'""'""'""'""'""'""'""'""'""'""'"""'""""'""""'""""""'""'""'""'""'""'
""'""'""'""'""'""'""'""'"""'"""""""'"""'""""""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'
"""'"""""""'"""""""'""'""'""'""'""'""'""'""'""'""'""'"""'""""'"""""""""'"""""""'""'""'""'
""'""'""'""'""'""'""'""'""'""'""'"""'"""""'"""""""'""'""'""'""'""'""'""'""'""'""'""'""'""
'""'"""'""""'""""""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'"""'""""""""'"""""""'""'""'
""'""'""'""'""'""'""'""'""'""'""'""'"""'""""""'""'""'""'""'""'""'""'""'""'""'""'""'""'"""
'""""""""'"""""""'""'""'""'""'""'""'""'""'""'""'""'""'""'"""'"""'""""'"""""""""'"""""""'"
"'""'""'""'""'""'""'""'""'""'""'""'""'"""'""""""'""'""'""'""'""'""'""'""'""'""'""'""'"""'
""'"""""""'""'""'""'""'""'""'""'""'""'""'""'""'"""'"""'""""""'""'""'""'""'""'""'""'""'""'
""'""'"""'""""""""'"""""""'""'""'""'""'""'""'""'""'""'""'""'"""'"""'""""'"""""""""'""""""
""'""""""""'""""""""'""""""""'""""""""'""""""""'""""""""'""""""""'""""""""'"""""""'""'""'
""'""'""'""'""'""'""'""'""'""'"""'"'""""""""'"""""""'"""'"""'""""""'"""'""'""""""""""

(+1)いいね... 通訳で確認しました。この言語の作成者が承認したにもかかわらず、「未承認」と見なされますか?(言語が単一引用符と二重引用符の代わりに2つの空白文字を使用して定義されていなかったのは残念なようです; o)))
res

@res実装するのは難しくありません。2つの空白を選択し、インタープリターを変更して、最初に空白を単一引用符と二重引用符で置き換えます!
ComFreek

2

VBA- 25 22個の異なるバイト(合計120個)

私はこれがそれほど多くの異なるバイトで勝てないことを知っていますが、ここではVBAにあります。

(space)(newline)",()=abcdeEIlnOpRSu1

Sub S(u)
u=Replace(Replace(Replace(Replace(Replace(u,"u","",,,1),"O","",,,1),"I","",,,1),"e","",,,1),"a","",,,1)
End Sub

* ,,,1大文字小文字を無視できます。(1定数を表しますvbTextCompare


あなたは数えませんでしEEnd Sub。しかし、それが基本だと考えると、とてもいいです。
反時計回りの回転を停止

@leftaroundaboutありがとう!についてほぼ間違いなくE、私は修正しました。私はサブの肉についてあまりにも心配していたと思います。;-)
ガフィ

実際、言語としてのVBAが自動フォーマットをサポートしているので、回答をすべて小文字(または大文字)に変更することができ、VBAはこれ自体を修正します。あなたはどちらかドロップできることを意味するeE
テイラー・スコット

?Replace(Replace(Replace(Replace(Replace(cells(1,1),"u","",,,1),"O","",,,1),"I","",,,1),"e","",,,1),"a","",,,1)私のカウント18 Distinct Bytes ?Replace(s1,)"uOIと111バイト合計で
テイラースコット

1

Python 3.x、19の異なる文字、合計62

print(''.join(x for x in input() if x.lower() not in 'aeiou'))

のような入力では適切に動作しませんRenée’s naïveté
tchrist


1

K、29。(18個の異なるバイト)

{i@&~(i:0:0)in(_i),i:"AEIOU"}

別個のバイト:{@&〜(:0)in _、 "AEIOU}

k){i@&~(i:0:0)in(_i),i:"AEIOU"}`
Hello WoOOrld
"Hll Wrld"

1

ASM-6つの異なる文字520のソース文字 (MsDOS .com)

A86を使用して組み立て

db 10110100xb
db 00000110xb
db 10110010xb
db 11111111xb
db 11001101xb
db 00100001xb
db 01110101xb
db 00000001xb
db 11000011xb
db 10001010xb
db 11010000xb
db 10111110xb
db 00011101xb
db 00000001xb
db 10111001xb
db 00001010xb
db 00000000xb
db 01000110xb
db 00101010xb
db 00000100xb
db 01110100xb
db 11101010xb
db 11100010xb
db 11111001xb
db 10110100xb
db 00000110xb
db 11001101xb
db 00100001xb
db 11101011xb
db 11100010xb
db 01000001xb
db 00000100xb
db 00000100xb
db 00000110xb
db 00000110xb
db 00001100xb
db 00000100xb
db 00000100xb
db 00000110xb
db 00000110xb

機械語を書くだけで、2つの異なる文字になります。
ウゴレン

1

MATL、8バイト(すべて個別)

t13Y2m~)

MATL Onlineでお試しください

まっすぐにゴルフをするだけで、キャラクターを再利用してユニークなバイト数を減らすトリックは見つかりませんでした。

13Y2はを含むリテラルですaeiouAEIOU

duplicaのテイクt入力文字列のEを、入力の文字が(でないかを示す論理(ブール)配列を作る~mというリテラルの残り火、およびインデックス()唯一の非母音文字の配列を返すために、それらの場所で)。


0

PHP-30の異なるバイト

<?=preg_replace('/[aeiou]/i','',fgets(STDIN));

1
あなたは変更できませんでした/[aeiou|AEIOU]//[aeiou]/i?また、あなたのコードも|消えます。
コンラッド

0

bash 26個、合計37個

c=$(cat -)
echo "${c//[aeiouAEIOU]/}"

ソート済み:

""$$()-///=AEIOU[]aacccceehiootu{}"

scala> code.toList.distinct.length
res51: Int = 26

scala> code.length
res52: Int = 37

"
  ""$$()-///=AEIOU[]aacccceehiootu{}"


scala> code.distinct.sorted 
res56: String = 
"
 "$()-/=AEIOU[]acehiotu{}"

結果(改行を保持):

echo "This program will remove VOWELS.
So we can now speak without them." | ./cg-6025-remove-vowels.sh
Ths prgrm wll rmv VWLS.
S w cn nw spk wtht thm.

trの場合、「-d aeiouAEIOU」を10または13として数える方法は明確ではありません。

echo "This program will remove VOWELS.
So we can now speak without them." | tr -d aeiouAEIOU

私はTRを使用して考えられているが、私はそれは、プログラミング言語ではありませんので、それはの全文をカウントしますので、それは、殻に包まれなければならないと結論付けたtr -d aeiouAEIOU15のために
ピーター・テイラー

16 <!-char-threshold-gymnastics->
ユーザー不明

15の異なる、合計16。
ピーターテイラー

0

パイソン(23)

誰かがそれをしなければなりませんでした。

print filter(lambda x:x not in'aeiou',raw_input())

3
これには23の異なる文字のみが含まれます。しかし、大文字の母音では機能しません。
反時計回りに回るのをやめた

新しい文字を1つ追加し、変数をxからcまたはsに変更することにより、lowercase()(または大文字)を使用し、大文字の母音も処理できます。
fabikw

0

F#105 121 91文字

Console.ReadLine()|>Seq.filter(fun c->not("aeiouAEIOU".Contains(c)))|>Seq.iter(printf"%c")

うーん...私はこのコードがLinqpadで機能するが、Visual Studioでは機能しないことに気づきました。そして、私は自分の投稿を投票するつもりはないので、何が悪いのかが分かるまで、このコメントとともにここに残しておきます。
スメタッドアナキスト

0

Excelの数式-19個の異なるバイト(合計196個)

=SBT(),"aeiouAEIOU1

Cell A1: <Value>
Cell B1: =SUBSTITUTE(SUBSTITUTE(A1,"a",""),"e","")
Cell C1: =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B1,"i",""),"o",""),"u",""),"A",""),"E",""),"I",""),"O",""),"U","")

*これは実際にはExcel 2003で動作するには入れ子関数が多すぎますが、概念はそこにあります。

数式を2つのセルに分割すると、目的の効果が得られました。-結果はC1にあります。



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