Ostatnio pracuję nad tą aplikacją na iOS i napotkałem (raczej łatwo rozwiązany) problem: jak ustalić, czy mój ciąg znaków składa się tylko z emoji?
Cóż, to twoja praca dzisiaj!
Wejście
Ciąg Jeśli obecność znaków Unicode jest dla ciebie problematyczna, możesz użyć innego rozsądnego formatu. Proszę podać, co robisz, jeśli robisz coś innego niż zwykły ciąg znaków do pobierania danych wejściowych.
Wynik
Wydrukuj lub zwróć prawdziwą wartość, jeśli ciąg wejściowy zawiera tylko emoji, oraz wartość falsey, jeśli zawiera znaki inne niż emoji.
Chwileczkę ... co to jest emoji? 😅
Emoji to postać mieszcząca się w następujących zakresach:
0x1F600...0x1F64F // Emoticons
0x1F300...0x1F5FF // Misc Symbols and Pictographs
0x1F680...0x1F6FF // Transport and Map
0x2600...0x26FF // Misc symbols
0x2700...0x27BF // Dingbats
0xFE00...0xFE0F // Variation Selectors
(Myślę)
Jest to „ code-golf ”, więc wygrywa najkrótszy kod w bajtach❕
Przypadki testowe
"Is it an emoji? 🤔" -> False
"🔹code-golf🔹" -> False
"😮 😥 😨 😩 😪" -> False
"I have no fancy emojis :(" -> False
"😎" -> True
"😊😘" -> True
Dla was biednych dusz, które nie widzą emoji, oto obraz przypadków testowych .
code-golf
string
decision-problem
unicode
Daniel
źródło
źródło
Odpowiedzi:
Rubin ,
6156 + 1 =625747 bajtówUżywa
-n
flagi i pobiera dane wejściowe z STDIN. Odbitki0
za prawdę inil
fałsz.-5 bajtów, ponieważ z jakiegoś powodu początkowo myślałem, że rozwiązanie wyrażenia regularnego nie zadziała ???
-10 bajtów od NieDzejkob za zauważenie nakładania się punktu kodowego, które przegapiłem: o
Wypróbuj online!
źródło
Emojicode , 179 bajtów
Odwołanie, które pobiera listę liczb całkowitych reprezentujących punkty kodowe i zwraca 1 lub 0.
Wypróbuj online!
Emojicode , 187 bajtów
Odwołanie, które pobiera ciąg znaków i zwraca wartość logiczną.
Wypróbuj online!
Nie golfił i wyjaśnił
Wypróbuj online!
źródło
JavaScript,
8361 bajtów-22 bajty dzięki @Shaggy
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
Próbny
źródło
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
🛂🚀
,♔☺☠
,🏐🎅🌝
itd., Z których wszystkie powinny być truthy. Wydaje się, że sprawdza tylko jeden z sześciu zakresów wspomnianych przez OP.Python, 87 bajtów
Wypróbuj online!
Zwraca
1
jako wartość prawdziwości iNone
wartość fałszowania.źródło
🌀-🙏
Proton , 54 bajty
Wypróbuj online!
-9 bajtów (3 znaki) dzięki NieDzejkob
„Pożyczanie” wyrażenia regularnego Uriela: P Jest to krótsze dzięki niejasnym funkcjom Protona i literałom wyrażeń regularnych
źródło
🌀-🙏
QuadR , 47 bajtów
Wypróbuj online!
Jest…
''≡⍵
pusty ciąg identyczny z wynikiem, gdy…[🌀-🙏🚀-☀-➿︀-︀️]
wszystkie emoji są…zastąpiony niczym
?
źródło