In PPCG sohbet odasina Ondokuzuncu Byte carets kullanılarak, ^
(veya havuç sadece sizinkilerden yukarıda daha önce yapılan yorumların biriyle kabul ettiğinizi belirten bir yoludur).
Bir şapka mesajı yalnızca N ^
karakterden oluşur (burada N pozitif bir tamsayıdır) ve N'in önceki mesajıyla anlaşmak anlamına gelir. Dolayısıyla, tek bir ^
mesaj hemen önceki mesajla, ^^
yani iki satırlı mesajla ^^^
anlaşmayı, üç satırlı mesajla anlaşmayı ve benzeri şeyleri ifade eder.
Ek olarak, bir X harf mesajı anlaşmaya girdiğinde (yani, işaret eden başka bir Y mesajı), X'in, Y ile aynı fikirde olduğu anlaşmaya vardığı söylenir. Bunun birden çok katmanı olabilir ve sonuçta, tüm şapka mesajları bir şapka olmayan mesaj ile anlaşmayı belirtir.
Örneğin, bir sohbet metni aşağıdaki gibi görünüyorsa: (satır başına bir mesaj)
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]
Daha sonra, 1, 2 ve 6 numaralı satırlar, şapkasız mesajlardır ve diğerleri, şapka olmayan mesajlara işaret eden şapka mesajlarıdır:
- Satır 3 doğrudan satıra 2 işaret eder.
- Satır 4, doğrudan satır 1'e işaret eder.
- Satır 5, satır 3'e, yani satır 2'ye işaret eder.
- Satır 7, satır 6'ya işaret eder.
- Satır 8, satır 3'e, satır 3'e ve satır 2'ye işaret eder.
- Satır 9, satır 7'ye, yani satır 6'ya işaret eder.
Bu nedenle, imlâ olmayan mesajı yazan kullanıcılar da dahil (ve insanların kendi mesajlarını imlemediğini varsayarsak) şunları yapabiliriz:
- 2 kişi hemfikirdir
I like dogs
(Hat 1 ve 4) - 4 kişi katılıyorum
I like cats
(2, 3, 5 ve 8. Satırlar) - 3 kişi hemfikirdir
I like turtles
(Satır 6, 7 ve 9)
Meydan okuma
Her satırın bir sohbet mesajını temsil ettiği yukarıdaki örneğe benzer şekilde çok satırlı bir dizede geçen bir program veya işlev yazın; eski iletiler önce gelir.
Her satır en az bir karakter olacak ve en az bir satır olacak. Tüm mesajlar ya sadece ^
'den oluşan ' şapka mesajları 'ya da harflerden ve boşluklardan oluşan imleç olmayan mesajlar olacaktır [ a-zA-Z]+
.
Her nota olmayan mesaj için, herhangi bir sırayla, mesaj metnini içeren net bir biçimde kendisiyle aynı fikirde olan kişilerin sayısını, örneğin
2 - I like dogs
4 - I like cats
3 - I like turtles
veya
I like cats (4)
I like dogs (2)
I like turtles (3)
veya
{"I like cats" : 4, "I like turtles" : 3, "I like dogs" : 2}
Bunu varsayabilirsin:
- İnsanlar her zaman kendi mesajlarına katılırlar ve kendilerini umursamazlar.
- İki karina olmayan mesaj aynı değildir.
- Şapka mesajları, ilk mesajdan önce hiçbir şeyi göstermez.
- Satırlar baştaki veya sondaki boşlukları içermeyecek.
Bayt cinsinden en kısa kod kazanır.
Test Kılıfları
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