Trong phòng chat PPCG , Byte thứ mười chín , sử dụng dấu mũ ^
(hoặc cà rốt ) là một cách chỉ ra rằng bạn đồng ý với một trong những nhận xét được đưa ra trước đó ngay trên bạn.
Một tin nhắn caret chỉ bao gồm N ^
ký tự (trong đó N là số nguyên dương) và nó có nghĩa là thỏa thuận với tin nhắn thứ N trước đó. Vì vậy, một ^
thỏa thuận có nghĩa là thỏa thuận với tin nhắn ngay trước đó, ^^
có nghĩa là thỏa thuận với tin nhắn hai dòng lên, ^^^
có nghĩa là thỏa thuận với tin nhắn ba dòng, v.v.
Ngoài ra, khi một tin nhắn dấu mũ X được thỏa thuận (còn gọi là hướng tới) một tin nhắn dấu mũ khác Y, thì X được cho là đồng ý với những gì Y đồng ý. Có thể có nhiều lớp của điều này và cuối cùng, tất cả các tin nhắn caret đều thể hiện sự đồng ý với một tin nhắn không quan tâm.
Ví dụ: nếu bản ghi trò chuyện trông như thế này: (một tin nhắn trên mỗi dòng)
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]
Sau đó, các dòng 1, 2 và 6 là các tin nhắn không có dấu mũ và tất cả các tin nhắn khác là các tin nhắn được chăm sóc chỉ đến các tin nhắn không quan tâm:
- Dòng 3 điểm trực tiếp đến dòng 2.
- Dòng 4 điểm trực tiếp đến dòng 1.
- Dòng 5 điểm đến dòng 3, điểm này đến dòng 2.
- Dòng 7 điểm đến dòng 6.
- Dòng 8 điểm đến dòng 5, điểm này đến dòng 3, điểm này chỉ đến dòng 2.
- Dòng 9 điểm đến dòng 7, điểm này đến dòng 6.
Do đó, bao gồm cả những người dùng đã viết tin nhắn không quan tâm (và giả sử mọi người không quan tâm đến tin nhắn của họ), chúng tôi có thể kết luận rằng:
- 2 người đồng ý với
I like dogs
(Dòng 1 và 4.) - 4 người đồng ý với
I like cats
(Dòng 2, 3, 5 và 8.) - 3 người đồng ý với
I like turtles
(Dòng 6, 7 và 9.)
Thử thách
Viết chương trình hoặc hàm lấy một chuỗi nhiều dòng tương tự như ví dụ ở trên, nơi mỗi dòng đại diện cho một tin nhắn trò chuyện, với các tin nhắn cũ hơn xuất hiện trước.
Mỗi dòng sẽ có ít nhất một ký tự và sẽ có ít nhất một dòng. Tất cả các tin nhắn sẽ là các tin nhắn được chăm sóc chỉ bao gồm các tin nhắn ^
hoặc là các tin nhắn không được chăm sóc bao gồm các chữ cái và dấu cách ( [ a-zA-Z]+
trong biểu thức chính quy).
Đối với mọi tin nhắn không quan tâm, theo bất kỳ thứ tự nào, hãy xuất số lượng người đồng ý với nó ở một số định dạng rõ ràng có chứa văn bản tin nhắn, ví dụ:
2 - I like dogs
4 - I like cats
3 - I like turtles
hoặc là
I like cats (4)
I like dogs (2)
I like turtles (3)
hoặc là
{"I like cats" : 4, "I like turtles" : 3, "I like dogs" : 2}
Bạn có thể cho rằng:
- Mọi người luôn đồng ý với các thông điệp của riêng họ và không tự chăm sóc bản thân.
- Không có hai tin nhắn không quan tâm là giống hệt nhau.
- Tin nhắn quan tâm sẽ không chỉ đến những điều trước tin nhắn đầu tiên.
- Các dòng sẽ không chứa khoảng trắng hàng đầu hoặc dấu.
Mã ngắn nhất tính bằng byte thắng.
Các trường hợp thử nghiệm
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