너무 많은 다른 문자를 사용하지 않고 모음 제거


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

é를 제거하면 y도 제거 할 수 있습니다.
사용자가 알 수 없음

4
@tchrist, 질문을 읽으십시오. a, e, i, o, u를 제거한다고 말합니다. 주제를 벗어났습니다. 삭제하십시오.
boothby

1
@tchrist : 특히 과제는 "모든 모음"말하지 않았다 우리는 이동식으로 고려해야 할 사항 열거.
사용자가 알 수 없음

답변:


2

이진 공백 (2 개의 고유 한 문자, 총 324 개의 문자)

TTSSSTTSSSSTTTSTTTSSSSSSTTSSSTSSSSSSTSTTSSSTSSSSTSSTSTTSSSTSSSTSSSTSTTSSSTSSSTSTSTSTSTTSSSTSSTSSTSSTSTTSSSTSTSSSSSTSTTSSSTSTSSSTSSTSTTSSSTSTSSTSSSTSTTSSSTSTSSTSTSTSTSTTSSSTSTSTSSTSSTSTTTTSSSTSTTSTTSTTTSSTSTTSSSSTTTSTSTSTSSSTSTTTSSTTTTSTTSTSTTTTSSTTTTTSSSTTTTSTTTTTTSSTSTTSSSSTTTSTSTSSTTSTTTSSSSTTTSTTSSTTSTTSTTTTSSSSTTTTTTTT

여기서 S, T, L은 각각 Space, Tab, Linefeed를 나타냅니다. ( "breadbox"공백 응답 을 이진 공백 으로 변환하면 뻔뻔 스럽게 얻을 수 있습니다.이 게시물은 아마도 그의 대답에 대한 주석이어야하지만 너무 깁니다.)

이진 공백은 공백 대신 T 대신 TS를 사용하고 L 대신 TT를 사용하여 접두어 코드 언어로 공백을 변환합니다. 예를 들어 스택에 -5를 푸시하는 BWS 명령은 SSTTSTL 대신 SSTSTSSTSTT입니다. 링크 : 임의의 3 기호 언어 및 이진 접두사 코드 버전을위한 양방향 변환기입니다 .

주의 : 문자 순서가 아닌 비트 순서 로 간주되는 이진 공백 프로그램에 대한 실제 비트 인터프리터 를 설계하는 것은 간단합니다 (예 : S, T 문자 대신 각각 0.1 비트 값 사용). 위의 내용은 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

3
@tchrist : ASCII를 가정합니다. 어쨌든 요구 사항에는 {a, e, i, o, u} 만 있습니다.
Jon Purdy

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
단항식을 사용하면 하나의 독특한 캐릭터 만 가질 수 있습니다! - P esolangs.org/wiki/Unary
스 marinus

3
@ marinus, 나는 이것을 Unary로 변환했고 1.166921663690E+1824그것을 저장하기 위해 바이트가 필요 했습니다 ( pastbin에 정확한 숫자 를 업로드 했습니다.이 주석에는 맞지 않습니다). 이 사이트로 전송하는 데 시간이 얼마나 걸리는지 궁금합니다.
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 :: Bleach 와 같은 냄새가납니다 . :)
tchrist

"기호"프로그램을 공백으로 변환하면 치명적인 구문 오류가 발생합니다.
res

그거 이상 하네. 변환하기 전에 실제 줄 바꿈을 제거하는 것을 기억 했습니까? 실제 스크립트의 base64 인코딩 만 포함하면됩니다.
breadbox

1
그렇습니다. 귀하의 base64 버전은 내가 사용중인 것으로 정확하게 해독합니다. 다음은 "STL"버전입니다 (각각 S, T, L 코딩 공간, 탭, 줄 바꿈) LSSSLSSSLTLTSSSSLSSSTSSSSSTLSSSTSSSTSTLSSSTSSTSSTLSSSTSSTTTTLSSSTSTSTSTLSSSTTSS‌​SSTLSSSTTSSTSTLSSSTTSTSSTLSSSTTSTTTTLSSSTTTSTSTLLSSSTLSLSLTSTLSSSLTTTTSSTLTSLLSLS‌​TLLSSLLTSSLLSLLLSSTLSSSLTTTSLSLTSSSLTLSSLSLSLLSSSSLLLL. 두 가지 문제 (다른 것들 중에서도)는 SSSL대신을 사용하여 스택에 0을 푸시 SSSSL하려고 시도하고 LSSLfor 를 사용하여 "빈"레이블을 정의하려고한다는 것 같습니다 skip.
res

1
지연 죄송합니다 ... 방금 공백 해석기 의 Edwin Brady 버전 0.3 (Linux 바이너리) 이 실제로 불만없이 프로그램을 실행 한다는 것을 확인했습니다 . 루비 구현 (동일한 페이지에서 사용 가능)을 사용하여 사용중인 구문을 허용하지 않습니다.
해상도

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캐릭터가 재사용 된다는 것을 강조하기 위해 그렇게했습니다 .
Cristian Lupascu

1
@tchrist 나는 OP가 그의 게시물에서 프랑스어 모음을 언급했다고 생각하지 않습니다. 또한 나는 순진한 프로그램을 작성하는 것을 좋아합니다. :-)
Cristian Lupascu

3
나는 확실 ö하고 ï당신의 모범에서 오용되고 다른 두 사람은 자음입니다. 아직도, 나는 당신이 요점을 가지고 있다고 생각합니다. 그러나 이런 식으로 우리는 결국 지원할 수 있습니다. 아마 ,, slǝʍoʌ uʍop ǝpısdn ,, :-)
Cristian Lupascu

1
@ w0lf은의 그 용도 ö와는 ï그들이 거의 지금은 사라진 적이 있지만 한 번, 영어로 발견되었다.
Joe

7

C, 22 20 19 개의 고유 한 문자.

필요한 편지 main, putchar, getchar= (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을 바꾸면 더 향상 될 수 있습니다 _start. min(일부 변수 이름 변경 후) 제거되고 _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이다 하지 나오지 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표준 펄의 일부는, 당신은 항상 참으로 항상 거기에 있다고 믿을 . 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///일치 하는 것을 제거 하는 데 사용할 수도 있습니다 . 펄은 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에 그 트리밍 할 수 printA의를 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
과제는 분음 부호가있는 모음 (단, a, e, i, o, u)을 제거하라고 말하지 Renée’s naïveté않아야합니다 Rné’s nïvté.
boothby

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

큰! 다시 투표 할 수 있으면 좋겠습니다.
Cristian Lupascu 11:29에

4

골프 스크립트 (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한 다음 필요한 수의 )(증가 연산자) 를 눌러 표시됩니다 . 예를 들어 숫자 67958을 사용하여 얻습니다.)
  2. 를 사용 ''+하면 배열이 문자열로 변환됩니다."a,e,i,o,u,A,E,I,O,U" 모든 모음을 나타냅니다.
  3. 빼기 부호 ( '-')는 소스 문자열에서 모든 모음을 빼는 데 사용됩니다.

사용 된 8 개 독특한 캐릭터 : [, ], 9, ), +, -, '(space)


4

읽을 수 없음 (2 개의 별개, 총 2666 개)

모든 사람들이 Turing tarpits를 게시하고 있기 때문에 이것을 사용할 것이라고 생각했습니다. 잘 알려진 것은 아니지만 존재하며 ( http://esolangs.org/wiki/Unreadable ) 두 문자 만 있습니다.

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

(+1) Nice ... 통역사에게 확인했습니다 . 이 언어의 제작자가 승인 했지만 여전히 "비 승인"으로 간주 됩니까? (작은 따옴표와 큰 따옴표 대신 두 개의 공백 문자를 사용하여 언어를 정의하지 않은 것이 부끄러운 것 같습니다);)
res

@res 구현하기 어렵지 않아야합니다. 공백을 두 개 선택 하고 인터프리터를 수정하여 공백을 먼저 작은 따옴표와 큰 따옴표로 바꾸십시오!
ComFreek

2

VBA- 25 22 개의 고유 바이트 (총 120 개)

나는 이것이 너무 많은 다른 바이트로 이길 수 없다는 것을 알고 있지만 여기 VBA에 있습니다.

(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

* ,,,1대소 문자를 무시할 수 있습니다. ( 1상수를 나타냄 vbTextCompare)


당신은 포함되지 않은 E에서를 End Sub. 그러나 기본이라고 생각하면 꽤 좋습니다.
반 시계 회전을 중지

@leftaroundabout 감사합니다! 에 대해 절대적으로 맞았 E으며 수정했습니다. 나는 Sub의 고기에 대해 너무 걱정했다고 생각합니다. ;-)
Gaffi

실제로 언어 인 VBA가 자동 서식을 지원하므로 답을 모두 소문자 (또는 대문자)로 변경하면 VBA가이를 자동으로 수정하므로 자동 서식 지정 언어가 자동 서식 지정 전에 고려 될 수 있기 때문에 당신이 중 하나를 드롭 할 수 있음을 의미 e또는E
테일러 스콧

?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 바이트와 같이 즉시 창 기능으로 구성 할 수 있습니다.
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


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 .

duplica을 받아 t, 입력 문자열의 전자 논리적 (부울) 배열이 입력의 문자 (안되고 있는지를 나타내는하게 ~) m그 문자 및 인덱스 (의 불씨 )만이 아닌 모음 문자의 배열을 반환, 그 장소에서).


0

PHP-30 바이트

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

1
/[aeiou|AEIOU]/로 바꿀 수 /[aeiou]/i없습니까? 또한 코드 |가 사라집니다.
Konrad Borowski

0

배쉬 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 의 전체 텍스트를 계산할 것이라고 결론 지었다 .
Peter Taylor

16 <!-char-threshold-gymnastics->
알려지지 않은 사용자

15 개, 총 16 개
피터 테일러

0

파이썬 (23)

누군가해야 했어요

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

3
23 개의 고유 한 문자 만 있습니다. 그러나 대문자 모음에서는 작동하지 않습니다.
반 시계 회전을 중지

하나의 새 문자를 추가하고 변수를 x에서 c 또는 s로 변경하면 소문자 () (또는 대문자)를 사용하고 대문자 모음도 처리 할 수 ​​있습니다.
fabikw

0

F # 105121 91 자

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

흠 ... 나는이 코드가 Linqpad에서 작동하지만 Visual Studio에서는 작동하지 않는다는 것을 알았습니다. 그리고 나는 내 자신의 공헌을 거부한다고 생각하지 않기 때문에, 무엇이 잘못되었는지 알아낼 때까지이 의견을 남길 것입니다.
Smetad Anarkist

0

Excel 수식-19 개의 고유 바이트 (총 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","")

* 이것은 실제로 Excel 2003에서 작동하기에는 너무 많은 중첩 함수이지만 개념이 있습니다.

수식을 두 개의 셀로 나누면 원하는 효과를 얻을 수 있습니다. -결과는 C1입니다.



0

K (oK) , 16 바이트, 14 개 구별

해결책:

^[;v,_v:"AEIOU"]

온라인으로 사용해보십시오!

설명:

제외 ( ^)를 사용 하여 모음을 걸러냅니다.

^[;v,_v:"AEIOU"] / the solution
^[;            ] / except (^) projection
      v:"AEIOU"  / save vowels as v
     _           / lowercase (_), "AEIOU" => "aeiou"
    ,            / join (,)
   v             / uppercase vowels
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.