캐럿 (또는 당근 )을 사용 하는 PPCG 대화방에서 19 번째 바이트 는 이전에 작성한 의견 중 하나에 동의한다는 것을 나타내는 방법입니다.^
캐럿 메시지는 N ^
문자 (여기서 N은 양의 정수) 로만 구성되며 이전 N 번째 메시지와의 동의를 의미합니다. 따라서 단일 ^
은 바로 이전 메시지와의 계약을 ^^
의미하고, 두 줄 ^^^
의 메시지와의 계약을 의미 하고, 세 줄의 메시지와의 계약을 의미합니다.
또한, 캐럿 메시지 X가 다른 캐럿 메시지 Y와 일치 할 때 (일명, 캐럿 메시지), X는 Y가 동의 한 것과 일치한다고 말한다. 이것의 여러 계층이있을 수 있으며 결국 모든 캐럿 메시지는 하나의 캐럿이 아닌 메시지와의 동의를 나타냅니다.
예를 들어, 대화 내용이 다음과 같은 경우 (한 줄에 하나의 메시지)
I like dogs [line 1]
I like cats [line 2]
^ [line 3]
^^^ [line 4]
^^ [line 5]
I like turtles [line 6]
^ [line 7]
^^^ [line 8]
^^ [line 9]
그런 다음 줄 1, 2 및 6은 캐럿이 아닌 메시지이고 나머지는 캐럿이 아닌 메시지를 가리키는 캐럿 메시지입니다.
- 3 호선은 2 호선을 직접 가리 킵니다.
- 라인 4는 라인 1을 직접 가리 킵니다.
- 5 행은 2 행을 가리키는 3 행을 가리 킵니다.
- 7 행은 6 행을 가리 킵니다.
- 8 행은 5 행, 3 행, 2 행을 가리 킵니다.
- 9 행은 7 행, 6 행을 가리 킵니다.
따라서 캐럿이 아닌 메시지를 작성한 사용자 (및 사람들이 자신의 메시지를 캐럿하지 않는다고 가정)를 포함하여 다음과 같은 결론을 내릴 수 있습니다.
- 2 명이 동의합니다
I like dogs
(1, 4 행). - 4 명이 동의합니다
I like cats
(2, 3, 5 및 8 행). - 3 명이 동의합니다
I like turtles
(6, 7, 9 행).
도전
위의 예와 비슷한 여러 줄 문자열을 사용하는 프로그램이나 함수를 작성하십시오. 여기서 모든 줄은 채팅 메시지를 나타내며 이전 메시지가 먼저 나타납니다.
모든 줄에는 문자가 하나 이상 있고 줄이 하나 이상 있습니다. 모든 메시지는로만 구성된 캐럿 메시지 ^
이거나 문자와 공백으로 구성된 캐럿이 아닌 메시지 ( [ a-zA-Z]+
정규식)입니다.
캐럿이 아닌 모든 메시지에 대해 순서에 상관없이 메시지 텍스트를 포함하는 명확한 형식으로 메시지에 동의하는 사람 수를 출력하십시오.
2 - I like dogs
4 - I like cats
3 - I like turtles
또는
I like cats (4)
I like dogs (2)
I like turtles (3)
또는
{"I like cats" : 4, "I like turtles" : 3, "I like dogs" : 2}
다음과 같이 가정 할 수 있습니다.
- 사람들은 항상 자신의 메시지에 동의하고 자신을 걱정하지 않습니다.
- 캐럿이 아닌 두 메시지는 동일하지 않습니다.
- 캐럿 메시지는 첫 번째 메시지 이전의 내용을 가리 키지 않습니다.
- 행은 앞뒤 공백을 포함하지 않습니다.
바이트 단위의 가장 짧은 코드가 이깁니다.
테스트 사례
bread is bread
1 - bread is bread
---
animals are fuzzy
^
^
^
^^^
^^
^^^^^^
7 - animals are fuzzy
---
pie
^
^^
pi
^
^^
^^^^
^
^^^^^
^^^^^
^^^
^^^^
^^
^
^^^^^^^^^
9 - pie
6 - pi
---
a
b
c
^
^
^
1 - a
1 - b
4 - c
---
a
b
c
^
^^
^^^
1 - a
1 - b
4 - c
---
a
b
c
^^^
^^^^
^^^^^
4 - a
1 - b
1 - c
---
W
^
^^
X
^^^
^^^^
Y
^^^^^
^^^^^^
Z
^^^^^^^
^^^^^^^^
1 - Y
3 - X
1 - Z
7 - W
---
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqretuvwxyz
^
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqretuvwxyz
2 - ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqretuvwxyz
1 - ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqretuvwxyz
---
I like dogs
I like cats
^
^^^
^^
I like turtles
^
^^^
^^
2 - I like dogs
4 - I like cats
3 - I like turtles