删除元音时不要使用太多不同的字符


10

挑战在于从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 ab具有三个不同的字节(ab和空间)。如果两个或多个条目将具有相同数量的不同字节,则对这些条目的字节数进行回退。


9
使用空白语言的工作
jfs

输入怎么样Renée’s naïveté?去除元音,这当然应该 Rn’s nvt作为输出。如果您问我,这些方法似乎都很幼稚。:)
tchrist 2012年

如果删除é,则可能也要删除y。
用户未知

4
@tchrist,阅读问题。说删除a,e,i,o,u。您不在主题上,请删除它。
2012年

1
@tchrist:特别是挑战中没有说“所有元音” 而是列举了我们认为可移动的东西。
用户未知

Answers:


2

二进制空格(2个不同的字符,总共324个字符)

TTSSSTTSSSSTTTSTTTSSSSSSTTSSSTSSSSSSTSTTSSSTSSSSTSSTSTTSSSTSSSTSSSTSTTSSSTSSSTSTSTSTSTTSSSTSSTSSTSSTSTTSSSTSTSSSSSTSTTSSSTSTSSSTSSTSTTSSSTSTSSTSSSTSTTSSSTSTSSTSTSTSTSTTSSSTSTSTSSTSSTSTTTTSSSTSTTSTTSTTTSSTSTTSSSSTTTSTSTSTSSSTSTTTSSTTTTSTTSTSTTTTSSTTTTTSSSTTTTSTTTTTTSSTSTTSSSSTTTSTSTSSTTSTTTSSSSTTTSTTSSTTSTTSTTTTSSSSTTTTTTTT

其中S,T,L分别表示Space,Tab,Linefeed。(通过将“ breadbox”中空白答案转换为Binary Whitespace 无耻地获得-此帖子可能应该是对他的答案的评论,但这太长了。)

Binary Whitespace是通过在任何地方使用TS而不是T并使用TT而不是L来将空格转换为前缀代码语言的;例如,将-5压入堆栈的BWS指令是SSTSTSSTSTT而不是SSTTSTL,等等。链接:任意3符号语言及其二进制前缀代码版本的双向翻译器

注意:直接为二进制空白程序设计一个真正的按位解释器会被视为序列,而不是字符序列(例如,分别使用0,1位值代替S,T字符)。上面的代码将是一个需要41个字节存储空间的324 程序。


13

Brainfuck,8个不同项(总计2121个)

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

区分字符:<>+-[],.。与-1用于的解释器一起使用EOF

$ echo'
此程序将删除VOWELS。
因此,我们现在可以在没有他们的情况下发言。
'| bf vowel-rm.bf

prgrm wll rmv VWLS。
S w cn nw spk wtht thm。


1
根据所述要求,这是最佳答案;但是OTOH最糟糕的地方是它使用了其语言中的每个语法上重要的字符。
dan04 2012年

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 2012年

1
使用一元,您将只有一个不同的角色!:-P esolangs.org/wiki/Unary
marinus

3
@marinus,我已经将其转换为Unary,我只需要1.166921663690E+1824字节来存储它(我已将确切的数字上传到pastebin,它不适合此注释)。我想知道将其发送到该网站需要多少时间。
Konrad Borowski

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 ::向我漂流。:)
tchrist 2012年

当我将“符号”程序转换为空白时,它会出现致命的语法错误。
2012年

真奇怪 您还记得进行转换之前删除了实际的换行符吗?我应该只包含实际脚本的base64编码。
面包箱2012年

1
是的,我做到了-您的base64版本完全解码为我正在使用的版本。下面是一个“STL”版(带S,T,L编码空格,制表符,换行符分别)LSSSLSSSLTLTSSSSLSSSTSSSSSTLSSSTSSSTSTLSSSTSSTSSTLSSSTSSTTTTLSSSTSTSTSTLSSSTTSS‌​SSTLSSSTTSSTSTLSSSTTSTSSTLSSSTTSTTTTLSSSTTTSTSTLLSSSTLSLSLTSTLSSSLTTTTSSTLTSLLSLS‌​TLLSSLLTSSLLSLLLSSTLSSSLTTTSLSLTSSSLTLSSLSLSLLSSSSLLLL。似乎有两个问题(尤其是),您正在尝试使用SSSL而不是将0推入堆栈SSSSL,并且还尝试通过使用LSSLfor 定义“空”标签skip
res

1
抱歉,延迟...我只是确认确实,Whitespace解释 器的Edwin Brady的Version 0.3(Linux二进制)确实确实在毫无抱怨的情况下运行了您的程序。我一直在使用Ruby实现(在同一页面上可用),该实现不允许使用所使用的语法。
2012年

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字符为小写时,它可以正常工作。
Konrad Borowski

2
@GlitchMr我只是这样做是为了强调I角色已被重用。
克里斯蒂安·卢帕斯库

1
@tchrist我认为OP在他的帖子中没有提到法国元音。另外,我喜欢编写朴素的程序。:-)
克里斯蒂安·卢帕斯库

3
我很确定öï在您的示例中被滥用,另外两个是辅音。不过,我认为您有一点。但是这样一来,我们可能最终也会支持ò̟̣̱͉̙t̝͔͖͇͙̦̝h̵̩e͎r͓̥ ̱̼̞̰̠͔k̞̝̮̕i̴̘̟̬̠n̻͜d̦̰̼̰͔s͈̺̝̭ ̫̺͔̠̭̖o̼f̲͓̮͘v̳̙͔̝o͔̭̫͕͢ẃ̜͉̪̩̗e̻͔̺̬̣ĺs͖̭̮;甚至,:-)
克里斯蒂安·卢帕斯库

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调用未定义的行为(--一行太多)。
我不在乎表达式的值,它确实减少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”,则使用相同的技巧当然会更大:

$ 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个字符来处理casemap:

$ 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

您可以修剪,要26,如果你能保证你至少V5.10通过交换运行printsay

$ 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
ᴘₒᵢⁿᵗαβουτ𝓽𝓱𝓮𝓻𝓮𝓽𝓱𝓮𝓻𝓮𝓽𝓱𝓮𝓻𝓮𝕋ℍ𝕀𝕊β?
于2012年

@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 2012年

但是是否有一些不具有兼容性分解的拉丁元音,例如ø
dan04

5
挑战不是说要删除带有变音符号的元音-只是a,e,i,o,u-所以Renée’s naïveté应该给Rné’s nïvté
2012年

2
如果äèïóű等(不在[a,e,i,o,u ,!]中!)如此,为什么不算希腊元音呢?或西里尔字母,就此而言(虽然看起来不像,但肯定有足够的元音)。
停止转动逆时针

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)。每个数字通过将值压入堆栈来表示9,其后是所需的数量)(增量运算符)。例如,该数字67是使用9和58 )s 获得的
  2. 使用''+,将数组转换为字符串"a,e,i,o,u,A,E,I,O,U",表示所有元音
  3. 然后使用减号('-')从源字符串中减去所有元音

已使用的8个唯一的字符:[]9)+-'(space)


4

无法读取(2个不同,总计2666个)

既然每个人都在发布图灵tarpit,我想我会用这个。它不是一个非常知名的,但确实存在(http://esolangs.org/wiki/Unread),并且只有两个字符。

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

(+1)很好...我已与您的翻译确认。即使该语言的创建者批准了它,它仍然被认为是“未经批准”的吗?(似乎很遗憾,没有使用两个空格字符而不是单引号和双引号来定义语言;))
2012年

@res应该不难实现。只需选择两个空格并修改解释器,以使其首先用单引号和双引号替换空格即可!
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,并且我已纠正。我想我太担心潜艇的肉了。;-)
加菲2012年

实际上,由于VBA作为一种语言支持自动格式化,因此您可以将答案更改为全部小写(或大写),并且VBA会自行对此进行更正,并且由于可以接受在自动格式化发生之前可以考虑使用自动格式化语言,因此表示您可以删除eE
泰勒·斯科特

您可以将其配置为立即窗口功能,例如?Replace(Replace(Replace(Replace(Replace(cells(1,1),"u","",,,1),"O","",,,1),"I","",,,1),"e","",,,1),"a","",,,1)我的计数18个不同字节?Replace(s1,)"uOI和总共111个字节
Taylor Scott

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 2012年


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

只需编写机器语言,它将是两个不同的字符。
ugoren

1

MATL,8个字节(全部不同)

t13Y2m~)

在MATL Online上尝试

只是一次直线高尔夫,并没有发现任何重用角色以减少唯一字节数的技巧。

13Y2是包含的文字aeiouAEIOU

t输入字符串的副本,创建一个逻辑(布尔)数组,指示输入的哪些字母不是该文字的(~m余烬,并)在那些位置索引(),以返回仅包含非元音字符的数组。


0

PHP-30个不同的字节

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

1
你不能/[aeiou|AEIOU]/换成/[aeiou]/i吗?同样,您的代码也会导致|消失。
Konrad Borowski

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 aeiouAEIOU为15
彼得·泰勒

16 <!-char-threshold-gymnastics->
用户未知

共有15个,共16个。
彼得·泰勒

0

巨蟒(23)

必须有人做。

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

3
那只有23个不同的字符。但是无法使用大写元音。
停止转动逆时针

通过添加一个新字符并将变量从x更改为c或s,您可以使用小写()(或大写)并处理大写元音。
fabikw 2012年

0

F#105 121 91个字符

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

嗯...我只是注意到此代码将在Linqpad中工作,但不能在Visual Studio中工作。而且由于我不想对自己的贡献投反对票,因此我将在此留下评论,直到找出问题所在。
Smetad Anarkist 2012年

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中使用,但是这里有概念。

将公式分成两个单元格即可达到所需的效果。-结果在C1中。


0

Noether,16个单独的字节(共17个字节)

I"[aeiouAEIOU]"-P

在线尝试!

使用正则表达式

[aeiouAEIOU]

从输入字符串中删除元音。


0

K(oK),16个字节,14个不同

解:

^[;v,_v:"AEIOU"]

在线尝试!

说明:

使用except(^)过滤出元音。

^[;v,_v:"AEIOU"] / the solution
^[;            ] / except (^) projection
      v:"AEIOU"  / save vowels as v
     _           / lowercase (_), "AEIOU" => "aeiou"
    ,            / join (,)
   v             / uppercase vowels
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.