Çok sayıda farklı karakter kullanmadan ünlüleri kaldırın


10

Zorluk, sesli harfleri (a, e, i, o, u) dizeden STDIN'den (evet, biliyorum, basit) kaldırmaktır. Programınızın herhangi bir argümanla çalıştırılmamasını bekleyebilirsiniz argv.

Misal:

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

Olarak değiştirildi:

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

Bir av var. Kazanan giriş farklı bayt sayısına göre belirlenir. Örneğin a ab, üç farklı bayt (sahiptir a, bve alan). İki veya daha fazla giriş aynı miktarda farklı baytlara sahip olacaksa, bu girişler için bayt sayısına geri dönüş yapılır.


9
Whitespace dil için bir iş
jfs

Gibi girdi ne olacak Renée’s naïveté? Sesli harflerden sıyrılmış, elbette Rn’s nvtçıktı gibi olmalı . Bana sorarsanız , bu yaklaşımların hepsi çok saf gibi görünüyor . :)
tchrist

É öğesini kaldırırsanız, y öğesini de kaldırmak isteyebilirsiniz.
kullanıcı bilinmiyor

4
@tchrist, soruyu okuyun. A, e, i, o, u 'yu kaldırmayı söyler. Konu dışısınız, lütfen bırakın.
boothby

1
@tchrist: Özellikle meydan okuma "tüm sesli harfleri" söylemedi ve çıkarılabilir olarak düşünmemiz gerekenleri sıraladı.
kullanıcı bilinmiyor

Yanıtlar:


2

İkili Boşluk (2 ayrı karakter, 324 toplam karakter)

TTSSSTTSSSSTTTSTTTSSSSSSTTSSSTSSSSSSTSTTSSSTSSSSTSSTSTTSSSTSSSTSSSTSTTSSSTSSSTSTSTSTSTTSSSTSSTSSTSSTSTTSSSTSTSSSSSTSTTSSSTSTSSSTSSTSTTSSSTSTSSTSSSTSTTSSSTSTSSTSTSTSTSTTSSSTSTSTSSTSSTSTTTTSSSTSTTSTTSTTTSSTSTTSSSSTTTSTSTSTSSSTSTTTSSTTTTSTTSTSTTTTSSTTTTTSSSTTTTSTTTTTTSSTSTTSSSSTTTSTSTSSTTSTTTSSSSTTTSTTSSTTSTTSTTTTSSSSTTTTTTTT

burada S, T, L sırasıyla Space, Tab, Linefeed'i belirtir. (Utanmazca , "breadbox" ile Whitespace cevabını İkili Whitespace'e dönüştürerek elde edildi - bu gönderi muhtemelen cevabına bir yorum olmalı, ancak çok uzun.)

İkili Whitespace, T yerine TS ve L yerine TT kullanılarak her yerde önek kod diline dönüştürülen Whitespace ; örneğin BWS talimat itmek -5 yığını SSTSTSSTSTT yerine SSTTSTL vb Bağlantısı'dır üzerine: A her iki yönden de keyfi bir 3-sembol dili ve onun ikili önek kodu sürümleri için çevirmen .

Not: İkili diziler yerine bit dizileri olarak kabul edilen İkili Boşluk programları için gerçek bir bitsel yorumlayıcı tasarlamak basittir (örneğin sırasıyla S, T karakterleri yerine 0,1 bit değerleri kullanmak). Yukarıdaki, 41 bayt depolama gerektiren bir 324 bit program olacaktır .


13

Brainfuck, 8 farklı (toplam 2121)

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

Distict karakterler: <>+-[],.. Kullanmak mütercimlerle İşleri -1için EOF.

$ echo '
Bu program VOWELS'i silecek.
Şimdi onlarsız konuşabiliriz.
'| bf sesli harf-rm.bf

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


1
Belirtilen şartlara göre, bu en iyi cevaptır; ancak OTOH , kendi dilinde sözdizimsel olarak önemli her karakteri kullanması en kötüsüdür .
dan04

3
@tchrist: ASCII olduğunu varsayar. Her neyse, sadece {a, e, i, o, u} şartlar içindedir.
Jon Purdy

1
Peki , Renée’s naïvetédönüşmek sorun değil Rń’s n̈vt́mi? Bu bana doğru gelmiyor, ama öyle diyorsan. Herhangi bir normalleşmeyi kabul edemeyeceğiniz için Renée’s naïveté, gerçekten "Rene\N{COMBINING ACUTE ACCENT}e\N{RIGHT SINGLE QUOTATION MARK}s nai\N{COMBINING DIAERESIS}vete\N{COMBINING ACUTE ACCENT}"- ya da sihirli sayıları tercih ediyorsanız , tamamen mantıklıdır "Rene\x{301}e\x{2019}s nai\x{308}vete\x{301}". Sesli harfleri eşlik eden aksanları olmadan çıkarırsanız, aşırı huysuzluk kazanırsınız. Cesur Yeni Milenyum'a Hoş Geldiniz! :)
tchrist

1
Unary kullanın, sadece bir farklı karakteriniz olacak! :-P esolangs.org/wiki/Unary
marinus

3
@marinus, bunu Unary'e dönüştürdüm ve 1.166921663690E+1824saklamak için baytlara ihtiyacım vardı ( pastebin'e tam sayı yükledim , bu yoruma uymuyor). Bu siteye göndermek için ne kadar zaman gerektiğini merak ediyorum.
Konrad Borowski

10

Boşluk, 3 puan (218 karakter)

Bunun olacağını biliyordun.

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

(_ = boşluk, ⇥ = sekme, ↲ = yeni satır)

Base64 ile kodlanmış komut dosyası şöyledir:

CiAgIAogICAgCgkKCSAgICAgCiAgIAkgICAgIAkKICAgCSAgIAkgCQogICAJICAJICAJCiAgIAkg
IAkJCQkKICAgCSAJIAkgCQogICAJCSAgICAJCiAgIAkJICAJIAkKICAgCQkgCSAgCQogICAJCSAJ
CQkJCiAgIAkJCSAJIAkKCiAgIAkKIAogCgkgCQogICAgCgkJCQkgIAkKCSAKCiAKIAkKCiAgCgoJ
ICAKCiAKCgogIAkKICAgIAoJCQkgCiAKCSAgIAoJCiAgCiAKIAoKICAgIAoKCgo=

Ve işte montajcı benzeri görünür biçimde yazılmış program:

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 gibi kokuyor :: Bana çamaşır suyu . :)
tchrist

"Sembolik" programınızı Whitespace'e dönüştürdüğümde, önemli sözdizimi hataları var.
res

Bu garip. Dönüşümü yapmadan önce gerçek satır sonlarını kaldırmayı hatırladınız mı? Sadece gerçek betiğin base64 kodlamasını eklemeliyim.
ekmek kutusu

1
Evet, bunu yaptım - base64 sürümünüz tam olarak kullandığım şekilde çözülüyor. İşte (S, T, Uzay, Tab kodlama L ile, sırasıyla hat besleme) bir "STL" sürümü: LSSSLSSSLTLTSSSSLSSSTSSSSSTLSSSTSSSTSTLSSSTSSTSSTLSSSTSSTTTTLSSSTSTSTSTLSSSTTSS‌​SSTLSSSTTSSTSTLSSSTTSTSSTLSSSTTSTTTTLSSSTTTSTSTLLSSSTLSLSLTSTLSSSLTTTTSSTLTSLLSLS‌​TLLSSLLTSSLLSLLLSSTLSSSLTTTSLSLTSSSLTLSSLSLSLLSSSSLLLL. Görünüşe göre iki sorun (diğerleri arasında) SSSLyerine yığına 0 basmaya SSSSLçalışıyorsunuz ve aynı zamanda LSSLfor kullanarak "boş" bir etiket tanımlamaya çalışıyorsunuz skip.
res

1
Gecikme için özür dilerim ... Whitespace yorumlayıcısının Edwin Brady'nin 0.3 Sürümü'nün (Linux ikili) gerçekten programınızı şikayetsiz çalıştırdığını doğruladım . Kullandığınız sözdizimini engelleyen Ruby uygulamasını (aynı sayfada bulunur) kullanıyorum.
res

8

SED (10 ayrı bayt, toplam 13)

s/[aeIou]//gI

Örnek kullanım:

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

çıktılar:

Th qck brwn fx jmps vr th lzy dg.

Sadece merak ediyorum, neden Ibüyük harf? IKarakterler küçük harf olduğunda iyi çalışır .
Konrad Borowski

2
@GlitchMr Bunu Ikarakterin yeniden kullanıldığını vurgulamak için yaptım .
Cristian Lupascu

1
@tchrist Ben OP'nin görevinde Fransızca ünlülere bahsettiğini sanmıyorum. Ayrıca naif programlar yazmayı seviyorum. :-)
Cristian Lupascu

3
Eminim öve ïörneğinizde yanlış kullanılmıştır ve diğer ikisi ünsüzdür. Yine de, bir fikrin olduğunu düşünüyorum. Ancak bu şekilde ò̟̣̱͉̙t̝͔͖͇͙̦̝h̵̩e͎r͓̥ ̱̼̞̰̠͔k̞̝̮̕i̴̘̟̬̠n̻͜d̦̰̼̰͔s͈̺̝̭ ̫̺͔̠̭̖o̼f̲͘ ͓̮v̳̙͔̝o͔̭̫͕͢ẃ̜͉̪̩̗e̻͔̺̬̣ĺs͖̭̮'yi de destekleyebiliriz; belki de, slǝʍoʌ uʍop ǝpısdn ,, :-)
Cristian Lupascu

1
@ w0lf, bu kullanımları öve bir ïzamanlar İngilizce olarak bulundu, ancak şimdi neredeyse yok oldular.
Joe

7

C, 22 20 19 farklı karakter.

İçin gerekli olan harfler main, putchar, getchar= 12.
Noktalama - (){};= 5.
Operatörler - &-= 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);
}

maintanımlanmamış davranışı başlatır ( --bir satırda çok fazla ).
İfade değerini umursamıyorum iive doğru sayıda azalıyor .
Azalmalar ile ayrılarak kolayca sabitlenebilir ;. Ama olduğu kadar güzel.

Eski sürüm, 20 karakter:
Aslında 21, çünkü bazı boşlukların önemli olduğunu ve sayılması gerektiğini fark etmedim, ancak kolayca parantez ile değiştirilebilirler.

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));
}

Belki birlikte derleyerek, daha da geliştirilebilir gcc -nostartfilesve yeniden adlandırma mainiçin _start. minkaldırılır (bazı değişken yeniden adlandırma işlemlerinden sonra), _seklenir. Ama sonra kullanmam gerekiyor exit(), bu da 3 karakter ekliyor.
Bunun yerine _start, herhangi bir ad kullanılabilir ve Linux'ta çalışır. Bu, 18 karaktere kadar inmeye izin verir, ancak çok standart değildir.


6

Perl: 8 veya 10 farklı karakter

s/// çözüm: 10 farklı, toplam 13

Sed tekniği her zaman perl'de de çalışır ve farklı karakterlerin ad sayısını verir (10):

s/[aeiou]//gi

Örneğin:

$ 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.

Bu, kanıtladığı gibi 10 farklı karakterdir:

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

Sed çözüm ile ilgili sorun, onun olmasıdır /iolduğu değil sed POSIX'e bir parçası olduğundan ve bu nedenle taşınabilir değildir:

$ 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'

Bu bir OpenBSD sisteminde çalışıyor. Buna karşılık, çünkü /istandart Perl parçası daima gerçekten de, sen yapabilirsiniz onun hep orada olmak güveniyoruz. Sed aksine.

Sesli harf listesine “y” eklemek istiyorsanız, aynı tekniği kullanmak elbette daha büyüktür:

$ 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

Ve şimdi toplam 14 karakter.

tr[][] çözüm: 8 farklı 10 toplam

tr///Eşleşen her şeyi kaldırmak için de kullanabilirsiniz . Perl, sed'in y///takma adını şu amaçlarla bile kullanabilir tr:

y/aeiou//d

Şimdi 8 farklı karakterdir, ancak büyük harfle çalışmaz. Casemaplarla başa çıkmak için 5 karakter daha eklemeniz gerekiyor:

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

ve elbette bu toplamda 15.

Ancak, karmaya sesli harf olarak “y” eklenmesi, s///sürümde olduğu gibi farklı karakter sayısını artırmaz :

$ 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.

Yani bu hala 11 toplamın sadece 8 farklısı:

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

EDIT : Aksanların Muhasebesi

Peki ya girdiler gibi Renée’s naïveté? Doğru çıktı elbette olmalıdır Rn’s nvt. V5.14'ün /rbayrağını kullanarak bunu nasıl yapacağınız aşağıda açıklanmıştır s///:

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

Bu 27 ayrı karakter:

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

Eğer değiştirerek az V5.10 ilerliyoruz garanti edebilir eğer 26'ya kesmeli edebilirsiniz printbir için 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

Ve aksanları çıkarmak yerine hareket ettirmek istemiyorsanız 22'ye düşebilirsiniz:

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

Hangi ... en azından söylemek ilginç . :) İşte farklı sayısı:

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

Bundan daha az karakter kullanarak aksanlarla düzgün bir şekilde başa çıkmak için başka bir dil elde etmek iyi şanslar!


1
ɢᴏᴏᴅ ᴘₒᵢⁿᵗ αβουτ 𝐝𝐢𝐚𝐜𝐫𝐢𝐭𝐢𝐜𝐬 𝑦𝑜𝑢 𝒈𝒐𝒕 𝓽𝓱𝓮𝓻𝓮, 𝒷𝓋𝓉 𝔥𝔬𝔴 𝕒𝕓𝕠𝕦𝕥 𝘀𝘁𝘂𝗳𝗳 𝚕𝚒𝚔𝚎 𝕋ℍ𝕀𝕊?
saat yönünün tersine dönmeyi bıraktı

@ leftaroundabout Bunların çoğu bir NFKD ayrışması taahhüdünde bulunarak giderildi. Yunanlılar benzer olmalarına rağmen saymıyorlar ve küçük başlıklar düzenli olarak ayrışmıyorlar. Sonuç "ɢᴏᴏᴅ ᴘnt αβουτ dcrtcs y gt thr, bvt hw bt stff lk THS", veya "\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

Ancak, uyumluluk ayrışması olmayan bazı Latin ünlüleri var mı ø?
dan04

5
meydan okuma, aksanlarla sesli harfleri kaldırmayı söylemez - sadece a, e, i, o, u - Renée’s naïvetévermeliyiz Rné’s nïvté.
boothby

2
Äèïóű vb. ([A, e, i, o, u] 'da değilse) neden ünlü ünlüler sayılmaz? Veya Kiril, bu konu için (görünüşler değil, ama yeterince ünlüler).
saat yönünün tersine dönmeyi bıraktı

5

GolfScript (7 ayrı bayt, toplam 103)

Yeterince büyük bir kısmı iyileşme w0lf s' cevabı Bence ayrı olarak nitelendirir:

[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 ayrı bayt, toplam 13:

'aeiouAEIOU'-

Harika! Keşke seni tekrar oylayabilseydim.
Cristian Lupascu

4

Golfscript (8 ayrı bayt, toplam 837)

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

Açıklama:

  1. Program aşağıdaki tamsayı değerleri dizisini oluşturur: [97 101 105 111 117 65 69 73 79 85](ASCII kodlarına karşılık gelir a,e,i,o,u,A,E,I,O,U). Her sayı, değerin yığına itilmesiyle ve 9ardından gerekli sayıda )(artan işleçler) basılarak temsil edilir . Örneğin, sayı ve 58 saniye 67kullanılarak elde edilir.9)
  2. Kullanılarak ''+, dizi "a,e,i,o,u,A,E,I,O,U"tüm sesli harfleri temsil eden dizeye dönüştürülür
  3. Çıkarma işareti ('-') daha sonra tüm sesli harfleri kaynak dizeden çıkarmak için kullanılır

Kullanıldı 8 benzersiz karakterler: [, ], 9, ), +, -, 've(space)


4

Okunamaz (2 ayrı, toplam 2666)

Herkes Turing brandaları gönderdiğinden, bunu kullanacağımı düşündüm. Çok iyi bilinen biri değil ama var ( http://esolangs.org/wiki/Unreadable ) ve sadece iki karakteri var.

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

(+1) Güzel ... Tercümanınızla doğruladım . Bu dilin yaratıcısı tarafından onaylanmış olsa bile, hala "onaylanmamış" olarak kabul ediliyor mu? (Bu dil yerine tek ve çift tırnak iki boşluk karakterlerini kullanarak tanımının yapılmadığı utanç verici görünüyor; o)))
res

@res Uygulaması zor olmamalı. Sadece iki boşluk seçin ve yorumlayıcıyı değiştirin, böylece boşluk alanlarını tek ve çift tırnaklarla değiştirir!
ComFreek

2

VBA - 25 22 farklı bayt (toplam 120)

Bunun çok farklı baytlarla kazanamayacağını biliyorum, ama burada VBA'da.

(space), (newline), ", ,, (, ), =, a, b, c, d, e, E, I, l, n, O, p, R, S, u,1

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

* büyük / ,,,1küçük harf kullanımının göz ardı edilmesini sağlar. ( 1sabiti temsil eder vbTextCompare)


Sen Saymadım Ein End Sub. Ama oldukça güzel, Basic göz önüne alındığında.
saat yönünün tersine dönmeyi bıraktı

@leftaroundabout Teşekkürler! Kesinlikle doğru E, ve ben düzelttim. Bence Sub etleri için çok endişelendim. ;-)
Gaffi

Aslında, VBA bir dil olarak otomatik biçimlendirmeyi desteklediğinden, yanıtınızı tüm küçük (veya üst) durumda olacak şekilde değiştirebilirsiniz ve VBA bunun kendisi için düzeltecektir ve otomatik biçimlendirme dillerinin otomatik biçimlendirme gerçekleşmeden önce dikkate alınabileceği kabul edildiğinden, ya edaE
Taylor Scott

Bunu ?Replace(Replace(Replace(Replace(Replace(cells(1,1),"u","",,,1),"O","",,,1),"I","",,,1),"e","",,,1),"a","",,,1)sayım 18 farklı bayt ?Replace(s1,)"uOIve toplam 111 bayt olarak olduğu gibi hemen bir pencere işlevine
Taylor Scott

1

Python 3.x, 19 farklı karakter, toplam 62

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

Bu gibi girişlerde düzgün çalışmıyor Renée’s naïveté.
tchrist

1

J, 21 karakter (18 farklı)

'AEIOUaeiou'-.~1!:1[1

1

K, 29. (18 farklı bayt)

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

farklı bayt: {@ & ~ (: 0) _, "AEIOU}

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

1

ASM - 6 farklı karakter 520 kaynak karakter (MsDOS .com)

A86 kullanılarak monte edilir

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

Sadece makine dilini yazın, iki ayrı karakter olacaktır.
ugoren

1

MATL, 8 bayt (hepsi farklı)

t13Y2m~)

MATL Online'da deneyin

Sadece düz bir golf, benzersiz bytecount azaltmak için karakterleri yeniden kullanmak için herhangi bir hile bulamadık.

13Y2bir değişmez içeren aeiouAEIOU.

tGiriş dizesinin bir kopyasını alın , yalnızca harf olmayan karakterlerden oluşan bir dizi döndürmek için girişin hangi harflerinin bu değişmezin ( ~) mközü olmadığını ve )bu yerlerde index ( ) olduğunu belirten mantıksal (boolean) bir dizi yapın.


0

PHP - 30 ayrı bayt

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

1
Değiştirmek Could /[aeiou|AEIOU]/içine /[aeiou]/i? Ayrıca, kodunuz da |kaybolur.
Konrad Borowski

0

bash 26 farklı, toplam 37

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

sıralanmış:

""$$()-///=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{}"

Sonuç (hat beslemelerini korur):

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 için, nasıl sayılacağı açık değildir: '-d aeiouAEIOU' 10 veya 13 olarak:

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

Tr kullanmayı düşündüm, ancak bir programlama dili olmadığı için bir kabuğa sarılması gerektiği sonucuna vardım, bu yüzden tr -d aeiouAEIOU15'in tam metnini sayar .
Peter Taylor

16 <! - char -reshold-gymnastics ->
kullanıcı bilinmiyor

15 farklı, toplam 16.
Peter Taylor

0

Python (23)

Birisi bunu yapmak zorundaydı.

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

3
"Sadece" 23 farklı karakteri vardır. Ancak büyük harflerde çalışmaz.
saat yönünün tersine dönmeyi bıraktı

Yeni bir karakter ekleyerek ve değişkeni x'den c veya s'ye değiştirerek küçük harf () (veya büyük harf) kullanabilir ve ayrıca büyük harf sesli harflerle başa çıkabilirsiniz.
fabikw

0

F # 105121 91 karakterler

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

Hmmm ... Bu kodun Linqpad'de çalışacağını ancak Visual Studio'da çalışmadığını fark ettim. Ve kendi katkımı oylamadan aşağı hissetmek istemediğim için, neyin yanlış olduğunu anlayana kadar bu yorumu burada bırakacağım.
Smetad Anarkist

0

Excel Formülü - 19 ayrı bayt (toplam 196)

=, S, B, T, (, ), ,, ", a, e, i, o, u, A, E, I, O, U,1

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","")

* Bu aslında Excel 2003'te çalışmak için çok fazla iç içe işlev var, ancak kavram orada.

Formüllerin iki hücreye bölünmesi istenen etkiye ulaşmıştır. - Sonuç C1.



0

K (oK) , 16 bayt, 14 farklı

Çözüm:

^[;v,_v:"AEIOU"]

Çevrimiçi deneyin!

Açıklama:

^Sesli harfleri filtrelemek için haric ( ) işlevini kullanma .

^[;v,_v:"AEIOU"] / the solution
^[;            ] / except (^) projection
      v:"AEIOU"  / save vowels as v
     _           / lowercase (_), "AEIOU" => "aeiou"
    ,            / join (,)
   v             / uppercase vowels
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.