Недавно я работал над этим приложением для iOS и столкнулся с (довольно легко решаемой) проблемой: как определить, состоит ли моя строка только из смайликов?
Ну, это твоя работа сегодня!
вход
Строка. Если наличие символов Юникод проблематично для вас, вы можете использовать другой разумный формат. Пожалуйста, укажите, что вы делаете, если вы делаете что-то отличное от обычной строки для ввода данных.
Выход
Выведите или верните истинное значение, если входная строка содержит только смайлики, и значение false, если оно содержит любые символы, кроме смайликов.
Секундочку ... что такое эмодзи? 😅
Emoji - это персонаж, который попадает в следующие диапазоны:
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
(Я думаю)
Это « код-гольф» , поэтому выигрывает самый короткий код в байтах❕
Контрольные примеры
"Is it an emoji? 🤔" -> False
"🔹code-golf🔹" -> False
"😮 😥 😨 😩 😪" -> False
"I have no fancy emojis :(" -> False
"😎" -> True
"😊😘" -> True
Для ваших бедных душ, которые не могут видеть смайлики, вот изображение тестовых случаев .
Ответы:
Рубин ,
6156 + 1 =625747 байтИспользует
-n
флаг и принимает данные от STDIN. Отпечатки0
для правды иnil
фальши.-5 байт, потому что по какой-то причине я изначально думал, что решение регулярных выражений не будет работать ???
-10 байт от NieDzejkob за то, что я заметил совпадение кодовой точки, которое я пропустил: o
Попробуйте онлайн!
источник
Эмоджикод , 179 байт
Вызываемый объект, который принимает список целых чисел, представляющих кодовые точки, и возвращает 1 или 0.
Попробуйте онлайн!
Эмоджикод , 187 байт
Вызываемый объект, который принимает строку и возвращает логическое значение.
Попробуйте онлайн!
Разгромил и объяснил
Попробуйте онлайн!
источник
JavaScript,
8361 байт-22 байта благодаря @Shaggy
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
демонстрация
источник
s=>(s.match(/\ud83d[\ude00-\ude4f]/g)||"").length==s.length/2
🛂🚀
,♔☺☠
, и🏐🎅🌝
т.д., все из которых должны быть truthy. Кажется, проверяется только один диапазон из шести, которые упоминает OP.Python, 87 байт
Попробуйте онлайн!
Возвращает
1
как истинное значение иNone
как ложное значение.источник
🌀-🙏
Протон , 54 байта
Попробуйте онлайн!
-9 байт (3 символа) благодаря NieDzejkob
«Заимствование» регулярного выражения Уриэля: P Это короче благодаря неясным функциям Протона и литералам регулярных выражений
источник
🌀-🙏
QuadR , 47 байт
Попробуйте онлайн!
Является…
''≡⍵
пустая строка, идентичная результату, когда…[🌀-🙏🚀-☀-➿︀-︀️]
все смайлики ...заменить ничем
?
источник