태그 보관물: decision-problem

decision-problem

휴지통 관리 만들어 내고 그렇지 않으면 거짓입니다.

PPCG의 일부 전통은 일부 사용자가 아나그램 (이전 문자를 재정렬하여 형성된 새로운 이름)으로 일시적으로 이름을 변경하는 것이되었습니다.

때때로 누가 누구인지 찾기가 어려워집니다. 프로그램이나 함수를 사용하여 두 구가 서로의 표현인지 알 수 있습니다.

도전

프로그램 또는 함수는 두 개의 문자열을 가져 와서 서로의 아나그램 인 경우 진실한 결과를 만들어 내고 그렇지 않으면 거짓입니다.

규칙

  • 입력은 문자 (ASCII 65-90 및 97-122), 숫자 (ASCII 48-57) 또는 공백 (ASCII 32) 만 포함합니다.
  • 아나그램 관계는 경우와 관계가 없습니다. “Arm”과 “RAM”은 아나그램입니다.
  • 공백도 계산하지 않습니다. “keyboard”와 “Barked Yo”는 아나그램입니다.
  • 모든 내장 허용
  • 입력 형식은 유연합니다 (두 개의 문자열, 두 개의 문자열 배열, 적합한 구분 기호가있는 두 구를 모두 포함하는 문자열).

코드 골프. 가장 적은 바이트가 이깁니다.

테스트 사례

Truthy :

Lynn, Nyl N
Digital Trauma, Tau Digital Arm
Sp3000, P S 3000
Manage Trash So, Those anagrams

거짓

Calvins Hobbies, Helka Homba
Android, rains odd
In between days, bayed entwine
Code golf, cod elf got


답변

05AB1E , 9 8 바이트

암호:

lvyð-{}Q

설명:

l         # Lowercase the strings
 vy   }   # Map over the list, for each...
   ð-     #   remove spaces
     {    #   and sort
       Q  # Check equality

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


답변

망막, 25

i+`(\w)(.*,.*)\1
$2
^\W*$

온라인으로 사용해보십시오! 또한 수정 된 여러 줄 버전을 실행할 수 있습니다 .

쉼표 앞의 문자와 쉼표 뒤의 일치 문자를 삭제하십시오. 남은 글자가 없다면 그것은 아나그램입니다.


답변

Pyth, 11 10 바이트

나에게 힘을 가르쳐 준 @FryAmTheEggman에게 감사합니다 ;!

qFmSr-d;0Q

여기 사용해보십시오!

두 개의 문자열 목록을 입력으로 사용합니다.

설명

qFmSr-d; 0Q # Q = 입력

  람다 변수로서 d를 갖는 m Q # 맵 Q
     -디; # 문자열에서 필터 공간
    r 0 # 소문자로 변환
   S # 문자열의 모든 문자 정렬
qF # 결과 목록을 펼치고 동등성을 점검하십시오

답변

파이썬 2, 63 61 바이트

lambda*l:len({`sorted(s.lower())`[2::5].strip()for s in l})<2

사실, n 개의 인수를 취하고 모든 n 개가 상호 회문 인지를 결정 하는 익명 함수 ! f("Lynn", "Nyl N")을 반환합니다 True.

이 세트 이해 트릭은 xnor입니다. 두 바이트를 절약했지만 이전 접근법은 매우 깔끔했습니다.

exec"a=`sorted(input().lower())`[2::5].strip();a"*2;print a==aa

답변

젤리, 12 바이트

ḟ€⁶O&95Ṣ€QLḂ

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

작동 원리

ḟ€⁶O&95Ṣ€QLḂ  Main link. Input: A (list of strings)

  ⁶           Yield ' '.
ḟ€            Filter it from each string.
   O          Apply ordinal to all characters.
    &95       Take bitwise AND with 95 to make the ordinals case-insensitive.
       Ṣ€     Sort each list of ordinals.
         Q    Deduplicate the list.
          L   Get the length.
           Ḃ  Compute the length's parity (1 -> 1, 2 -> 0).

대체 버전, 비경쟁 (9 바이트)

젤리의 대문자 원자에는 버그가 있었으며, 젤리는 여전히 목록의 평등을 테스트하기 위해 내장 기능이 없었습니다 …

ḟ⁶ŒuṢµ€⁼/

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

작동 원리

ḟ⁶ŒuṢµ€⁼/     Main link. Input: A (list of strings)

     µ€       Map the chain to the left over A.
 ⁶            Yield ' '.
ḟ             Filter it from the string.
  Œu          Cast to uppercase.
    Ṣ         Sort.
       ⁼/     Reduce by equality.

답변

CJam, 11 12 14 바이트

@FryAmTheEggman 덕분에 3 2 바이트가 제거되었습니다.

{lelS-$}2*=

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

{      }2*       e# do this twice
 l               e# read line as a string
  el             e# make lowercase
    S-           e# remove spaces from string
      $          e# sort
          =      e# compare strings

답변

자바 스크립트, 69 61 60 59 바이트

@ ӍѲꝆΛҐӍΛПҒЦꝆ 감사 합니다. 태닝와 오프 1 바이트 ( 지적 에 의해 @apsillers )

n=>m=>(G=s=>[]+s.toLowerCase().split(/ */).sort())(n)==G(m)
f=n=>m=>
    (G=s=>[]+s.toLowerCase()
        .split(/ */)
        .sort()
    )(n)==G(m)

F=(n,m)=>document.body.innerHTML+=`<pre>f('${n}')('${m}') -> ${f(n)(m)}</pre>`

F('Luis Mendo','Don Muesli')
F('Calvins Hobbies','Helka Homba')
F('Android','rains odd')
F('In between days','bayed entwine')
F('Code golf','cod elf got')
F('Lynn','Nyl N')
F('Digital Trauma','Tau Digital Arm')
F('Sp3000','P S 3000')
F('Manage Trash So','Those anagrams')