이 끈이 수레 바퀴를하는 편지입니까?


35

도전 영감은 내가 어딘가에서 본 것입니다.

"nun"이라는 단어 는 수레 바퀴를 하는 문자 n입니다.

당신의 도전은 문자열을 가지고 그것이 수레 바퀴를하는 첫 글자인지 확인하는 것입니다.

규칙

다음과 같은 경우 문자열은 수레 바퀴를 수행하는 문자입니다.

  • 첫 글자는 마지막 글자와 같습니다. (그 편지는 머리에 닿을 수 없습니다.)
  • 문자열은 한 문자마다 카트 바퀴 문자 사이를 번갈아 표시합니다.

수레 바퀴 문자는 n및 u, m및 w, b및 q입니다. 참고한다는 n와 w함께이되어 있지 편지를 cartwheeling하고, 둘은 없습니다 w와 b.

  • 표준 입력 방법 중 하나를 사용하여 문자열을 가져옵니다.
  • 문자열이 수레 바퀴 문자이면 틀린 값을 출력하고 그렇지 않으면 거짓 값을 출력합니다. 표준 출력 방법을 사용하여 출력 할 수 있습니다.

추가 규칙 :

  • 소문자 수레 바퀴 문자 n/ u/ m/ w/ b/ q만 처리하면됩니다.
  • 입력이 비어 있지 않다고 가정 할 수 있습니다.
  • 한 문자 문자열은 올바른 수레 바퀴가 아닙니다.

테스트 사례

Input        -> Output
nun          -> truthy
nunun        -> truthy
nunununu     -> falsy
wmw          -> truthy
wmwun        -> falsy
bqbqbqbqbqb  -> truthy
v^v^v        -> falsy
AVAVA        -> falsy
OOO          -> falsy
ununununu    -> truthy
nunwmwnun    -> falsy
nun unun     -> falsy
nunwmw       -> falsy
nnuunnuunnuu -> falsy
nwnwnwnwn    -> falsy
m            -> falsy
nunuuunun    -> falsy

우승자

와 마찬가지로 (각 언어에서) 가장 짧은 코드가 승리!


29
나는 b수레 바퀴 가라고 생각 q하지 않습니까? d그리고 p또한 수레 바퀴 친구입니다. 열쇠는 뒤집지 않고 회전하는 것입니다.
— 엔지니어 토스트

다른 테스트 uwuwuwuwuwu
— 사례

19
왜 bqb하지만 pdp?
— aschepler

@ aschepler 엉망.
— MD XF

2
dpd, pdp 그리고 그런 식으로 작동하지 않기 때문에 거짓 사례로 테스트 사례에 포함시켜야한다고 생각합니다.
— trlkly

답변:


2

젤리 , 23 바이트

생각보다 많은 작업이 필요했습니다!

“nmbuwq”iЀo⁵IAs2⁼€3,3Ȧ

문자 목록을 가져 와서 1(truthy) 또는 0(falsey)를 반환하는 monadic 링크 .

온라인으로 사용해보십시오! 또는 테스트 스위트를 참조하십시오.

어떻게?

1- 인덱싱 된 문자 목록에서 입력의 각 문자의 색인을 찾습니다 nmbuwq. 이 문자열은 유효한 수레 바퀴에 대한 인덱스의 증분 차이가 [-3,3]또는 중 하나의 반복이므로 쌍의 인덱스가 3 개가되도록 배열됩니다 [3,-3].

항목이 원자은 "지수"가 목록에없는 경우 i, 그것은 반환 0과 발견되지 않은 문자 쌍 것이다 b같이 입력을하고, bxbxbtruthy. 따라서 0s는 10유효성을 검사하기 전에 다른 값에서 3보다 큰 값 으로 대체됩니다 .

“nmbuwq”iЀo⁵IAs2⁼€3,3Ȧ - Link: list of characters, s
         Ѐ             - map across c in s:
        i               -   first index of c in (1-indexed; 0 if not present)
“nmbuwq”                -   literal "nmbuwq"
            ⁵           - literal 10
           o            - logical or (vectorises - replace any 0s with 10s)
             I          - incremental differences (i.e. deltas)
              A         - absolute value (vectorises)
               s2       - split into chunks of 2 (possibly with a single remainder)
                   3,3  - pair three with three = [3,3]
                 ⁼€     - equals? for €ach (1 if so, otherwise 0 - including a single 3)
                      Ȧ - any and all? (0 if any 0s or if empty, 1 otherwise)

13

sed 4.2.2 , 30 + 1 -r= 43 31 바이트

첫 줄을 단축하여 @Neil 덕분에 12 바이트 절약

/nu|wm|qb/!d
/^((.).)\1*\2$/!d

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

거짓 인 경우 입력을 삭제하고 그렇지 않으면 입력에 아무 것도 수행하지 않습니다.

설명

로 -r플래그, 우리는 사용할 필요가 없습니다 \(및 \)그룹을 캡처하고이 바이트를 저장합니다.

/nu|wm|qb/!                # On every line that does not match this regex
           d               # Delete
/^((.).)\1*\2$/!           # On every line that does not math
 ^((.).)                   #  the first two characters at the beginning of the line
        \1*                #  repeated
           \2$             #  with the first character at the end of the line
                d          # Delete

sed마법사 가 온다 ...
— MD XF

@MDXF 난 아직도 마법사, 초보자 :) 인에서 멀리 해요
— Kritixi LITHOS

모든 것이 sed저에게 마법사처럼 보입니다. : P
— MD XF

1
당신은 쌍 모두 예 편지의 절반의 봉쇄를 확인해야 unu하고 nun포함 된 nu문자의 나머지 두 일치하는지 두 번째 라인 보장합니다.
— Neil

8

자바 스크립트 (ES6), 82 78 77 바이트

ThePirateBay 및 MD XF에서 제안한대로 두 개의 잘못된 값을 사용하여 1 바이트를 절약했습니다.

([c,...s],S='bqwmun')=>s.reduceRight((r,a)=>r&a==S[S.search(c)^++k&1],k=s>'')

테스트 사례


&&대신에 떠날 이유 가 &있습니까?

@ThePirateBay 글쎄, 유일한 이유는 반환 된 허위 값의 일관성이지만 실제로이 과제에 대한 요구 사항은 아닙니다. (를 사용하면 또는 &을 생산할 수 있습니다 .)false0
— Arnauld

@Arnauld 당신은 두 번째를 제거 할 수 있습니다 &; 일관되지 않은 잘못된 값이 허용되도록 (채팅에서) 언젠가 지정했습니다.
— MD XF

5

파이썬 3 , 111 바이트

Mr. Xcoder 덕분에 -2 바이트.

lambda s:s[0]==s[-1]and any(any({*s[::2]}=={i[j]}and{*s[1::2]}=={i[j<1]}for j in[0,1])for i in['nu','mw','bq'])

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


2
당신이 다시 담당자에 나를 통과로 한숨
— MD XF

바이트 수에 다시 도달하려고하지만 -2 바이트 이기 때문에 이것에 대해 기분이 좋지 않습니다 .
— Mr. Xcoder

BTW, 귀하의 솔루션은 처음과 마찬가지로 유효하지 않습니다. 에 실패합니다 nunununu.
— Mr. Xcoder

많은 바이트 비용으로 수정되었습니다. ;-;
— 완전히 인간적인

5

파이썬 2 , 63 바이트

lambda s:s[:3]in'ununqbqbwmwm'and s==s[:2]*max(len(s)/2,1)+s[0]

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


좋은 답변, 사이트에 오신 것을 환영합니다! 몇 가지 팁 : "nu un nm mn bp pb".split()4 바이트를 절약하고 공백을 제거 할 수 있습니다. 75 바이트 :lambda s:any(s==c[-1]+c*max(len(s)/2,1)for c in"nu un nm mn bp pb".split())
— DJMcMayhem

s[0]대신에 1 바이트를 절약 할 수 c[-1]있습니다.
— DJMcMayhem

61 바이트 응답은 unmnu및에 대해 True를 반환합니다 unmwnu. 실제로 (s==s[::-1])+len(set(s))4이면 가양 성을 반환 하므로 강제하기 쉽습니다. 4 개의 다른 문자라도 True를 반환합니다.
— 아놀드 팔머

59 바이트는 단일 문자 입력으로 구분됩니다. 이 중 하나를 선택해서 죄송합니다. 저는 Python을 좋아합니다 :)
— Arnold Palmer

예외가 아닌가? 그 휴식은 의도적입니다
— Harrichael

5

파이썬 3 , 71 바이트

lambda n:''.join(sorted({*n[1::2]}|{*n[::2]}))in"nu,mw,bq"*(n==n[::-1])

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

@HyperNeutrino -1 감사 -13 @ovs 덕분에

위의 모든 테스트 사례에서 실패한 것으로 판명되면 대안이 있습니다.

lambda n:(sorted(list({*n[1::2]}.union({*n[::2]})))in[[*'nu'],[*'mw'],[*'bq']])*n[0]==n[-1]

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


설명

  • ''.join(sorted(list({*n[1::2]}).union({*n[::2]})))) -홀수 인덱스의 문자와 짝수 인덱스의 문자를 가져 와서 중복 제거하고 조합에 의해 형성된 목록을 정렬합니다.

  • in'nu,mw,bq' -유효한 장바구니 문자 조합인지 확인합니다.

  • n[0]==n[-1] -첫 글자가 마지막 글자와 같은지 확인합니다.


테스트 사례가 실패 함, 좋은 직업 +1
— MD XF

@ MDXF 아 감사합니다! 나는 너무 안심입니다 ...> _ <
— Mr. Xcoder

1
uwuwuwuwuwu사실 결과
— Kritixi Lithos

1
잘못된 : nunuuunun
— Harrichael

1
nuuun -> True. 이것은 옳지 않다.
— 재귀

5

자바 스크립트 (ES6), 40 바이트

s=>/^(nu|un|bq|qb|wm|mw)+$/.test(s+s[1])

입력 문자열의 두 번째 문자와 연결된 입력 문자열이 동일한 수레 바퀴 문자 쌍의 반복 문자열인지 확인합니다.

테스트 :

[
  "nun",
  "nunun",
  "nunununu",
  "wmw",
  "wmwun",
  "bqbqbqbqbqb",
  "v^v^v",
  "AVAVA",
  "OOO",
  "ununununu",
  "nunwmwnun",
  "nun unun",
  "nunwmw",
  "nnuunnuunnuu",
  "nwnwnwnwn",
  "m",
  "nunuuunun"
].forEach( x=>console.log( x, (s=>/^(nu|un|bq|qb|wm|mw)+$/.test(s+s[1]))(x) ) )


여기서 논리를 정말 좋아합니다! 나는 마지막에 캐릭터를 추가하고 테스트 할 생각을 결코하지 않았습니다. 골프를 칠 때에도 좋고 깔끔한 코드.
— trlkly

4

클로저, 156 바이트

(fn[w](let[s["nu""wm""bq"]c #(= 1(count(set %)))e #(take-nth 2 %)r #(and(c(e %))(c(e(drop 1 %))))](and(=(first w)(last w))(r w)(some #(=(set w)(set %))s))))

이것은 매우 어려웠다! 나는 그것을 3 가지 하위 문제로 분해해야했습니다.

  • 첫 글자는 마지막 글자와 동일합니까?
  • 글자가 반복됩니까?
  • 모든 문자가 유효한 세트 중 하나의 일부입니까?

나는 확실히 이기지 못했다. 그러나 이것은 좋은 아침 운동이었다! 아래 전체 설명 :

(defn cartwheel? [word]
  (let [; Valid Character Sets
        cs ["nu" "wm" "bq"]

        ; Is the list composed of only a single character?
        count-1? #(= 1 (count (set %)))

        ; Grabs every other element of the list
        every-other #(take-nth 2 %)

        ; Do the characters repeat? Works by checking if every other element is the same, then drops the first letter
        ; to check all the odd indexed characters
        repeating? #(and (count-1? (every-other %))
                         (count-1? (every-other (drop 1 %))))]

    ; Do all the predicates hold?
    (and (= (first word) (last word))
         (repeating? word)
         ; Is the set of letters in the word part of some set of the valid characters?
         (some #(= (set word) (set %)) cs))))

4

하스켈, 80 78 바이트

f s|l<-length s=odd l&&l>1&&any((==s).take l.cycle)(words"un nu mw wm bq qb")

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

작동 방식 :

l<-length s        -- let l be the length of the input string

f s         =      -- return True, if
    odd l          -- l is odd and
    l > 1          -- l is greater than 1 and 
    any            -- any of the following is also True
      (     )(words "  ...  ")
                   -- apply the function to each of the words "un", "nu" ... "qb"
           cycle   --  infinitely repeat the word
      take l       --  take the first l characters
     (==s)         --  and compare to s

4

파이썬 2 , 45 바이트

lambda s:s[2:]+s[1:3]==s>s[:2]in'bqbunuwmw'

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

문자열의 공백은 DEL문자입니다.


|u|수레 바퀴로 해석됩니다.
— Harrichael

@Harrichael 나는 DEL명확하게 문자를 넣었다 .
— xnor

그래도 DEL 문자는 입력 문자가 될 수 있습니다. 나는 당신의 해결책을 좋아하지만 당신은 내 대답에서 트릭을 빌려야합니다.s[:3]in'bqbqnunuwmwm'
— Harrichael

4

레티 나 , 24 바이트

G`nu|mw|bq
^((.).)\1*\2$

진실의 경우 1을, 거짓의 경우 0을 출력합니다.

소의 포트 ck의 대답.

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


최신 버전은 nunwmwnun(거짓이어야하는 경우)에 대해 진실을 출력하므로 \1*sed 답변을 받았습니다 .
— Kritixi Lithos

@Cowsquack 아 알 겠어.
— Okx

첫 번째 줄은 G`nu|mw|bp모든 진실한 줄에 해당 문자 쌍 중 하나가 포함되어 있고 두 번째 줄은 나머지 모든 줄에도 그 문자가 포함되어 있기 때문입니다.
— Neil

ununununu
— @Neil

@Okx Neil의 제안은 여전히 ​​해당 테스트 케이스에서 작동하는 것 같습니다 . 온라인으로 사용해보십시오!
— Kritixi Lithos

3

Grime , 28 바이트

e`..-#!"nu\|bq\|mw"oTv&..v+.

온라인으로 사용해보십시오! 인쇄 1truthy 입력 및 0falsy 사람을위한.

설명

Grime 구문은 정규식과 비슷하며 Grime 프로그램은 문자의 사각형과 일치하거나 일치하지 않는 패턴을 지정합니다.

e`..-#!"nu\|bq\|mw"oTv&..v+.
e`                            Match input against pattern:
      !                       Does not
     #                        contain
  ..                          a 2-character substring
    -                         which is not
       "nu\|bq\|mw"           any of these strings
                   oT         potentially reversed,
                     v&       AND
                       ..     two characters
                         v+   one or more times
                           .  then one more character.

이를 단축시키는 데 도움이되는 Grime의 일부 기능 :

  • 일반적으로 문자 리터럴은 백 슬래시로 이스케이프해야하지만 다음과 같이 ""변경합니다. 구문 요소는 이스케이프되지만 리터럴은 그렇지 않습니다. 따옴표가 없으면 문자 쌍을 열거하는 부분은입니다 (\n\u|\b\p|\m\w)oT.
  • 이항 연산자 (여기 -) 를 따르는 단항 연산자는 다음과 같이 결과에 작용 ..-#!"…"oT합니다 (..-"…"oT)#!.
  • v들 그들을 따라 구문 요소의 우선 순위를 낮 춥니 다. 고독한는 &보다 더 높은 우선 순위를 가지고 있습니다 -만, v&낮은있다. 마찬가지로 ..+으로 구문 분석 .(.+)되지만 ..v+과 동일합니다 (..)+.



2

젤리 , 27 바이트

Ḋm2Qµ³m2Q;Ṣe“nu“mw“bq”ȧ³⁼U¤

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

작동 원리

Ḋm2Qµ³m2Q;µṢe“nu“mw“bq”ȧ³⁼U¤  Main link; z is the argument
Ḋ                             z[1:]
 m2                           z[1::2]
   Q                          deduplicate(z[1::2])
    µ                         New Chain
     ³                        z
      m2                      z[::2]
        Q                     deduplicate(z[::2])
         ;                    deduplicate(z[1::2]) + deduplicate(z[::2])
          Ṣ                  Sort the result
           e                 Is it an element of the following?
            “nu“mw“bq”       ["nu", "mw", "bq"]
                      ȧ      It has the correct characters and:
                       ³  ¤  Nilad followed by links as nilad
                       ³     z
                        ⁼      == 
                         U        z[::-1]
                          ¤  [End chain]

젤리 ... 피스보다 길어?!
— Mr. Xcoder

@ Mr.Xcoder hhh 내가 노력하고 있습니다 ... xD
— HyperNeutrino

잘
— 지내요



1

파이썬 3 , 88 바이트

lambda x:[len(x)%2,x[:2]in'nu,un,bq,qb,mw,wm',len(set(x[::2])),len(set(x[1::2]))]==[1]*4

len(x)%2: 짝수 길이의 문자열은 첫 번째 문자로 끝날 수 없습니다

x[:2] in: 6 개의 유효한 시작 쌍이 있는지 확인하십시오.

len(set()): 0,2,4 ... 및 1,3,5 ...에서 문자 집합의 길이를 가져옵니다.

True평가 목록이 [1,1,1,1]과 같으면 else를 반환 합니다 False.

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


1

Perl 5 , 55 + 1 (-p) = 56 바이트

$c={"nuunmwwmbppb"=~/./g}->{$l=chop};$_=/^($l$c)+$/&&$c

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

첫 번째 문자의 "거꾸로"버전을 true로 인쇄하고 false를 표시하지 않습니다.


솔리드 18 바이트로 나를 때리십시오. 좋은 대답입니다!
— Silvio Mayolo

지금은 그리 많지 않습니다. 원본은 모두 동일한 문자의 모든 문자열에 대해 true를 반환했습니다.
— Xcali

1

PHP, 59 + 1 바이트

<?=preg_match('#^(nu|un|mw|wm|bq|qb)\1+$#',$argn.$argn[1]);

로 파이프로 실행하십시오 -F.

부분적으로 정규식 솔루션, 101 + 1 바이트 :

for($s=$argn;$c=$s[$i++];$p=$c)$c!=$p||die;echo$i%2<1&&preg_match("#^(nu|mw|bq)#",count_chars($s,3));

허위 출력이 비어 있습니다. 로 파이프로 실행하십시오 -nR.



1

MATL , 25 바이트

'nuwmbq'&mq2&\d~wdts~Gnqv

OUPUT는 비어 있지 않은 숫자 열 벡터이다 truthy 모든 항목이 0이고, 경우 falsy 그렇지. 온라인으로 사용해보십시오!

하기 위해 모든 테스트 케이스를 확인 , if분기 문자열이 어떤 truthy 값을 대체 바닥 글에 추가 'truthy'또는 문자열에 의한 falsy 값 'falsy', 다음 문자열을 표시합니다.

설명

'nuwmbq'  % Push this string
&m        % Implicit input. For each char, push index of membership in the above
          %  string, or 0 if not member
q         % Subtract 1
2         % Push 2
&\        % Divmod. Pushes remainders, then quotients
d~        % Consecutive differences negated. Gives an array of ones iff all
          % quotients were equal
w         % Swap. Moves remainders to top
d         % Consecutive differences. Gives nonzeros iff no consecutive
          % remainders were equal
ts~       % Duplicate, sum, negate. Gives true iff sum was 0. For unequal
          % consecutive differences of remainders, this corresponds to an odd
          % number of remainders
Gnq       % Push input, length, subtract 1. True iff input longer than 1
v         % Concatenate into column vector. Truthy iff all entries are nonzero


0

클로저, 115 바이트

(apply some-fn(map(fn[r]#(re-matches r %))(map(fn[[x y]](re-pattern(str x"("y x")+")))["nu""un""mw""wm""bq""qb"])))

각 문자 쌍으로 정규식을 작성하고 입력이 일치하는지 확인하십시오. 이 모든 부분을 수행하는 더 많은 우아한 방법이 있지만 모두 더 장황합니다. 클로저 골프와 같은 삶입니다.


0

Perl 5, 68 + 1 = 69 바이트

if(/../&&$&=~/nu|un|bq|qb|mw|wm/){s/^($&)*//;$&=~/./;print if/^$&$/}

로 실행하십시오 -n.

설명:

# Match the first two characters, and if they exist, then...
if (/../ &&
 # Make sure they are a pair of compatible cartwheel characters.
 $&=~/nu|un|bq|qb|mw|wm/) {
  # If that's true, then eliminate as many of that pair of characters
  # from the beginning of the string as possible.
  s/^($&)*//;
  # Then get the first character out of the match (the first character
  # of the original string).
  $&=~/./;
  # Print the text (which is truthy since it's nonempty) if the original
  # first character matches exactly the remaining string.
  print if/^$&$/
  # Otherwise, print nothing (the empty string in Perl is falsy).
}

0

TXR 리스프 , 50 바이트

(f^$ #/n(un)+|u(nu)+|m(wm)+|w(mw+)|b(qb)+|q(bq)+/)

운영:

1> (f^$ #/n(un)+|u(nu)+|m(wm)+|w(mw+)|b(qb)+|q(bq)+/)
#<intrinsic fun: 1 param>
2> [*1 "nun"]
"nun"
3> [*1 "nuns"]
nil
4> [*1 "mwm"]
"mwm"
5> [*1 "wmw"]
"wmw"
6> [*1 "abc"]
nil

f^$정규식 객체를 가져와 고정 된 방식으로 정규식과 일치하는 함수를 반환하는 결합기입니다. (그 자체로 정규 표현식 객체는 문자열을 가져 와서 스스로 검색하는 함수 호출 객체입니다.)



0

TXR : 78 74 바이트

@{x 2}@(rep :gap 0)@x@(end)@y
@(bind(x y)(#"nu un mw wm bq qb"@[x 0..1]))

시스템 프롬프트에서 실행하십시오. 프롬프트의 숫자는 종료 상태입니다 : 0 = 성공, 1 = 실패 :

0:$ ./txr cart.txr 
nun
0:$ ./txr cart.txr 
abc
1:$ ./txr cart.txr 
bab
1:$ ./txr cart.txr 
mwm
1:$ ./txr cart.txr 
nununununun
0:$

설명:

  • @{x 2}: 두 문자와 일치하고 x변수에 바인드 합니다.
  • @(rep :gap 0)@x@(end): 건너 뛴 간격없이 반복 일치 : x이전에 일치 한 digraph가 0 회 이상 발생 합니다.
  • @y: 나머지 줄이 일치하여로 캡처되었습니다 y.
  • @(bind(x y)(foo bar)): 바인드 x행 foo내지 y bar. 이후 x와 y이미 결합되어, 그들은 일치해야 foo하고 bar, 그렇지 않으면 실패가있다.
  • foo인 #"nu un mw wm bq qb"단어 목록의 문자, 리스프 목록에 대한 문법 설탕은 ("nu" "un" ... "qb"). bind변수와 변수 요소와 일치해야리스트 수단 간의 매치.
  • baris @[x 0..1]: x시작 부분의 한 문자 하위 문자열입니다 . bind과 사이 의 일치 y는 줄의 마지막 문자가 첫 번째 문자와 일치하도록합니다.

0

C ++, 268 바이트

#include<map>
#include<string>
std::map<char,char>c{{'n','u'},{'m','w'},{98,'q'},{'w','m'},{'u','n'},{'q',98}};
int w(std::string s){if(s[0]!=s[s.size()-1]||c.find(s[0])==c.end()||s.size()<3)return 0;for(int i=0;i<s.size()-1;i+=2)if(s[i+1]!=c[s[i]])return 0;return 1;}

두 문자가 아닌 모든 문자에 ASCII 값을 사용하여 10 바이트를 절약하십시오 .
— MD XF

@MDXF n= 110, u= 117, m= 109, w= 119, q= 113. 따라서 ASCII 값을 사용하거나 c(99) 보다 높은 문자는 중요하지 않습니다.
— HatsuPointerKun

0

자바 스크립트 (ES6), 63 바이트

s=>/bq|wm|un/.test(s)&s.replace(RegExp(s[0]+s[1],'g'),'')==s[0]

반환 1또는 0.

설명

모든 수레 바퀴 문자열에는 bq , wm 또는 un 중 하나 이상이 있습니다 . 우리는 다음과 같이 테스트합니다.

/bq|wm|un/.test(s)

수레 바퀴 문자열의 처음 두 글자를 모두 아무것도 바꾸지 않으면 문자열의 첫 글자가 남습니다. 우리는 다음과 같이 테스트합니다.

s.replace(RegExp(s[0]+s[1],'g'),'')==s[0]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.