Eu tenho trabalhado neste aplicativo iOS recentemente e encontrei um problema (bastante facilmente resolvido): Como determinar se minha string é composta apenas por emojis?
Bem, esse é o seu trabalho hoje!
Entrada
Uma linha. Se a presença de caracteres unicode for problemática para você, você poderá usar um formato razoável diferente. Por favor, indique o que você faz se fizer algo diferente de uma sequência regular para obter informações.
Resultado
Imprima ou retorne um valor verdadeiro se a sequência de entrada contiver apenas emojis e um valor falsey se contiver outros caracteres que não sejam emojis.
Espere um segundo ... o que é um emoji? 😅
Um emoji é um personagem que se enquadra nesses intervalos:
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
(Eu acho que)
Este é o " código-golfe ", então o código mais curto em bytes vence.
Casos de teste
"Is it an emoji? 🤔" -> False
"🔹code-golf🔹" -> False
"😮 😥 😨 😩 😪" -> False
"I have no fancy emojis :(" -> False
"😎" -> True
"😊😘" -> True
Para vocês, pobres almas que não podem ver emojis, aqui está uma imagem dos casos de teste .
fonte
Respostas:
Ruby ,
6156 + 1 =625747 bytesUsa a
-n
bandeira e recebe as informações de STDIN. Imprime0
de verdade enil
de falsidade.-5 bytes porque, por algum motivo, pensei inicialmente que a solução regex não funcionaria ???
-10 bytes de NieDzejkob por perceber uma sobreposição de ponto de código que eu perdi:
Experimente online!
fonte
Emojicode , 179 bytes
Uma chamada que pega uma lista de números inteiros representando os pontos de código e retorna 1 ou 0.
Experimente online!
Emojicode , 187 bytes
Uma chamada que pega uma string e retorna um booleano.
Experimente online!
Ungolfed e explicou
Experimente online!
fonte
JavaScript,
8361 bytes-22 bytes graças a @Shaggy
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
Demo
fonte
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
🛂🚀
,♔☺☠
,🏐🎅🌝
etc., os quais devem ser truthy. Parece verificar apenas um intervalo dos seis mencionados pelo OP.Python, 87 bytes
Experimente online!
Retorna
1
como valorNone
verdadeiro e como valor falso.fonte
🌀-🙏
Próton , 54 bytes
Experimente online!
-9 bytes (3 caracteres) graças a NieDzejkob
"Emprestando" a expressão regular de Uriel: P Isso é mais curto graças aos recursos obscuros de Proton e aos literais de expressão regular
fonte
🌀-🙏
QuadR , 47 bytes
Experimente online!
É…
''≡⍵
uma string vazia idêntica ao resultado quando…[🌀-🙏🚀-☀-➿︀-︀️]
todos os emojis são…substituído por nada
?
fonte