He estado trabajando en esta aplicación iOS recientemente y me encontré con un problema (bastante fácil de resolver): ¿cómo puedo determinar si mi cadena está compuesta solo de emojis?
Bueno, ese es tu trabajo hoy!
Entrada
Una cuerda. Si la presencia de caracteres unicode es problemática para usted, entonces puede usar un formato razonable diferente. Indique lo que hace si hace algo diferente de una cadena normal para tomar la entrada.
Salida
Imprima o devuelva un valor verdadero si la cadena de entrada contiene solo emojis y un valor falso si contiene cualquier otro carácter que no sea emojis.
Espera un segundo ... ¿Qué es un emoji? 😅
Un emoji es un personaje que cae en estos rangos:
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
(Yo creo que)
Este es 🔹 code-golf 🔹, por lo que el código más corto en bytes gana❕
Casos de prueba
"Is it an emoji? 🤔" -> False
"🔹code-golf🔹" -> False
"😮 😥 😨 😩 😪" -> False
"I have no fancy emojis :(" -> False
"😎" -> True
"😊😘" -> True
Para ustedes, almas pobres que no pueden ver emojis, aquí hay una imagen de los casos de prueba .
code-golf
string
decision-problem
unicode
Daniel
fuente
fuente
Respuestas:
Ruby ,
6156 + 1 =625747 bytesUtiliza la
-n
bandera y toma información de STDIN. Impresiones0
para la verdad y lanil
falsedad.-5 bytes porque por alguna razón inicialmente pensé que la solución regex no funcionaría.
-10 bytes de NieDzejkob por notar una superposición de puntos de código que me perdí: o
Pruébalo en línea!
fuente
Emojicode , 179 bytes
Un invocable que toma una lista de enteros que representan los puntos de código y devuelve 1 o 0.
Pruébalo en línea!
Emojicode , 187 bytes
Un invocable que toma una cadena y devuelve un booleano.
Pruébalo en línea!
Desengañado y explicado
Pruébalo en línea!
fuente
JavaScript,
8361 bytes-22 bytes gracias a @Shaggy
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
Manifestación
fuente
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
🛂🚀
,♔☺☠
,🏐🎅🌝
etc., todo lo cual debe ser Truthy. Parece verificar solo un rango de los seis que OP menciona.Python, 87 bytes
Pruébalo en línea!
Devuelve
1
como valor verdadero yNone
como valor falso.fuente
🌀-🙏
Protón , 54 bytes
Pruébalo en línea!
-9 bytes (3 caracteres) gracias a NieDzejkob
"Préstamo" de expresiones regulares de Uriel: P Esto es más corto gracias a las características oscuras de Proton y los literales de expresiones regulares
fuente
🌀-🙏
QuadR , 47 bytes
Pruébalo en línea!
Es…
''≡⍵
una cadena vacía idéntica al resultado cuando ...[🌀-🙏🚀-☀-➿︀-︀️]
todos los emojis son ...reemplazado por nada
?
fuente