Це навіть слово?


54

Вам слід написати програму або функцію, яка приймає 4-символьну рядок як вхідну та виводить значення, що вказує, чи є рядок англійським словом чи ні. Ви допускаєте помилки у 15% наданих тестів.

Деталі введення:

Введення - це 4-символьний рядок, що містить лише малі англійські літери (az).

Вихідні дані:

Якщо введенням є англійське слово, слід вивести булеве trueчи ціле число 1.

Якщо введення не є англійським словом, слід вивести булеве falseчи ціле число 0.

Списки слів

перелік 4-літерних англійських слів (2236 слів)

список 4- літерних несловних рядків (2236 рядків)

Список без слів містить рівномірно випадково сформовані послідовності літер з вилученими з них реальними словами.

Тестування

Ваша програма чи функція повинні робити не більше 15% помилок у заданих списках слів разом. Це означає, що ви можете дати неправильний вихід для 670 із 4472 наданих входів.

Ви також повинні розмістити програму тестування або функцію, щоб інші могли перевірити вашу відповідь. Тривалість вашої програми тестування не враховується у вашій оцінці.

Стандартні лазівки заборонені.

Ваша програма не повинна використовувати жодних зовнішніх джерел, наприклад, доступ до Інтернету чи читання файлів.

Це кодовий гольф, тому найкоротша програма чи функція виграє.


4
Цей масив повинен бути частиною коду. (Я вважаю). @randomra - обережно згадуючи, що ви не можете прочитати / отримати доступ до списку слів з будь-якого місця ..
Optimizer

3
@BryanDevaney вам слід лише жорсткий код 85% списку
dwana

1
@TeunPronk Так.
randomra

2
@Sparr Є ще інші способи вирішити проблему, як-от у цьому питанні
Sp3000

5
«Є чи це навіть слово?» Так. [<- 4
часи

Відповіді:


62

Рубін, 29 байт

->s{!s[/[^aeiou]{3}|[jqxz]/]}

Сподіваюся, я маю це правильно - це вперше програмування в Ruby. Я фактично робив усі свої тестування в Python, але import reбув занадто довгим для мене.

Це анонімна функція, яка бере рядок і виводить true/falseвідповідно. Він використовує регулярний вираз, який шукає одну з наступних двох речей:

  • Три приголосні поспіль
  • Містить один із jqxz

Якщо будь-яке з цих присутніх, ми класифікуємо введення як не слово.

Функція відповідає 2030 слів (неправильно відсутня на 206) і не відповідає 1782 не-словам (неправильно збігається 454), для загальної кількості 660 неправильних класифікацій. Випробуваний на ideone .

Дякуємо @ MartinBüttner за допомогу Ruby. Мартін також зазначає, що повна програма займає стільки ж байтів:

p !gets[/[^aeiou]{3}|[jqxz]/]

Також завдяки користувачеві20150203 для спрощення регулярного вираження.


Рубі, 1586 1488 1349 1288 1203 байт

Щоб отримати бонус, ось функція зі значно довшим регулярним виразом:

->s{!s[/[^aeiouyhs]{3}|[^aeiouy]{4}|q[^u]|^x|^[bdf][^aeioulry]|^[cgkprtwy][mfdsbktjgxpc]|^a[aoz]|^e[hf]|^i[ea]|^o[ecy]|^u[^ltnspgr]|[bdgktyz][cgmpw]$|[fhpvx][^aieoflnrsty]$|eh$|i[iyh]|[wkybp]z|[dghz]t|[fjzsv]y.|h[ns].|ae.|y.?[yifj]|[ejo]..[iuw]|[inv]..[gpuvz]|[eu].[jqwx]|[vyz][^t][fhmpqy]|i[^ae][fjqrv]|[ospen].?j|[ceg][iuy][ghkoux]|[bcpx]f|[hnuy]w|[ghnw]b|[txz]n|[jk]r|.[fjuyz]u|[hnt]ia|lsy|.p.o|.l.l|.tas|zal|f.p|eeb|wei|.sc.|.pl|yat|hov|hab|aug|v.re|aba|ohu|ned|s.dd|uc$|nux|oo$|dgo|lix|wua|v.o|vo$|ryo|wue|dk|oic|yol|.tr|yrb|oba|ruh|c.ls|idd|chn|doy|ekh|tk|lke|asl|cir|eez|asc|uil|iou|m..p|awt|irp|zaa|td|swk|ors|phe|aro|yps|q.e|ati|ibt|e.mo|we.y|p.de|ley|eq|tui|e..g|sps|akh|dny|swr|iul|.t.t|.tao|rcy|.p.y|idi|j.o|.kl|oms|ogi|jat|.lis|mye|uza|rsi|.ala|ibo|ipi|yaa|eun|ruy|wog|mm$|oex|koi|uyn|.hid|osc|ofe|w.op|auc|uzy|yme|aab|slm|oza|.fi|bys|z.e|nse|faf|l.h|f.va|nay|hag|opo|lal|seck|z.b|kt|agl|epo|roch|ix.|pys|oez|h.zi|nan|jor|c.ey|dui|ry.d|.sn|sek|w.no|iaz|ieb|irb|tz.|ilz|oib|cd|bye|ded|f.b|if$|mig|kue|ki.w|yew|dab|kh.|grs|no.t|cs.|.n.m|iea|y.na|vev|eag|el[uz]|eo[dkr]|e[hlsu]e|e[dho]l|eov|e[adp]y|r[grt]u|yn[klo]|.[^ilv].v|s[bdgqrz]|m[dfghrz]|[vpcwx]{2}|^[hjlmnvz][^aeiouy]|^[drw]l|l[hnr]/]}

Я хотів показати, що регулярне вираження все ще може перемогти стиснення, тому цей класифікує кожен заданий випадок правильно . Сам регулярний вираз трохи схожий на експоненціальний розпад - перші біти збігаються з безліччю слів, потім кожен біт після збігів все менше і менше, поки я не здався і просто з'єднав решту (близько 200 або більше) наприкінці. Деякі з тих , які були залишені виглядали дивно , як справжні слова (наприклад, chiaяка є слово).

Я кинув регекс на свій очищувач для гольфу regex, про який я написав ще один виклик - він займав гольф близько 300 байтів, перш ніж мені довелося спробувати пересувати речі вручну. Все ще є справедливий біт для гольфу, хоча.


1
user20150203 (не маючи відповіді для коментаря) запропонував таке в редакції, яке я відхилив на основі цієї дискусії : "Редагувати новий користувач без репутації: ->s{!s[/[^aeiou]{3}|[jqxz]/]}має лише 29 байт і відповідає 2030 слів (неправильно не вдається на 206) і не працює на 1782 не -слови (неправильно збігаються 454), для загальної кількості 660 неправильних класифікацій. "
Мартін Ендер

Це дивно, я думав, що перевірив видалення кожного знака - напевно, забув v. Дякую користувачеві20150203!
Sp3000

@ Sp3000 Ви надаєте мені дозвіл на використання вашого регексу у відповіді на мене? Я зарахую вам репутацію (якщо це можливо), і всі кредити будуть вказані у відповіді.
Ісмаїл Мігель

@IsmaelMiguel Це просто мова, де набагато коротше написати функцію для збігу регулярних виразів? Якщо так, я визнаю, мені трохи цікаво ... (щоб я вкрав це наступного разу!)
Sp3000

@ Sp3000 Це не коротше. Але я просто хочу щось опублікувати. Вже давно я не розмістив тут нічого. І це трохи розширить мої знання. Отже, це безпрограшна ситуація для мене. І я дам вам репутацію, якщо це можливо, тож це виграш і для вас (можливо).
Ісмаїл Мігель

13

Гровий, 77 74

x={it==~/^(?!.+[jq]|[^aeiou][^aeiouhlr]|.[^aeiouy]{3}|.[x-z])|^s[cknptw]/}

Я написав тестову програму на Java, яку ви можете знайти в цьому Gist on Github. Ось результат моєї тестової програми:

Good: 2135 1708
Bad: 101 528

(Не вдалося 629 тестових випадків)

PS Я думаю, що це закінчиться проблемою з гольф-регексом надзвичайно скоро ...

Якщо відповідь Sp3000 (функцію) потрібно перетворити на Groovy, вона закінчиться тим самим числом символів. Як названа функція:

x={it!=~/[^aeiou]{3}|[jqxz]/}

або неназвана функція:

{i->i!=~/[^aeiou]{3}|[jqxz]/}

він може провалити лише 335 випадків;), але все-таки досить акуратний
Teun Pronk

це почувається так неправильно, але це працює ^^
dwana

@TeunPronk: (2236 + 2236) * 0,15 = 670,8. тож ви можете вийти з ладу 670. Я думаю, ви забули про класифікацію не-слів правильно. "Ваша програма чи функція повинні робити не більше 15% помилок у заданих списках слів разом ." (наголос мій)
Ніл Слейтер

@NeilSlater Ааа, так, я вважав лише правильні. Мій поганий ^^
Teun Pronk

9

Javascript, 1626 байт:

Я хотів знайти рішення, яке для кожного персонажа має поняття, про яке можна піти. Не такий короткий, але без регексу та досить хорошого результату (слова: 101 помилка, не слова, 228 помилок)

v=function(w){var g={a:{b:3,c:4,d:4,m:6,f:1,r:14,g:4,i:6,x:2,k:2,l:10,n:12,s:6,p:4,t:7,u:2,v:3,w:3,y:3,h:1,z:1},b:{b:3,a:19,e:19,y:3,l:6,o:17,u:12,i:9,s:9,r:6},e:{d:7,l:8,t:4,s:10,n:11,e:10,r:10,c:2,x:2,w:4,a:13,f:1,p:2,g:2,v:1,b:1,m:3,u:1,i:1,k:1,y:2},l:{e:16,y:5,a:16,b:1,f:2,l:12,m:2,o:14,p:1,s:2,u:8,d:4,i:10,k:3,t:5},o:{s:7,g:3,e:3,k:3,n:10,m:4,p:5,w:6,b:3,c:2,t:6,a:5,d:5,h:1,i:2,l:8,o:9,r:8,u:4,y:2,v:2,z:1,f:2,x:1},u:{t:8,e:5,m:7,s:11,a:2,n:13,r:15,d:6,c:4,f:1,g:5,l:9,y:1,z:1,b:5,j:1,x:1,p:2,k:1,i:2},c:{e:9,h:12,i:2,r:6,t:3,o:20,k:15,a:16,l:6,u:8,y:1},h:{e:21,r:2,a:22,i:15,o:20,u:15,n:3,l:1,y:1},i:{d:8,m:5,n:18,r:7,a:2,s:8,v:2,l:13,t:10,b:1,e:6,k:2,p:5,g:3,c:6,o:2,f:2,z:1},m:{e:19,s:8,a:21,i:12,m:1,o:15,y:2,b:4,p:8,n:1,u:8},n:{e:18,u:3,a:9,d:10,n:4,o:7,s:11,t:11,g:10,k:6,i:5,y:2,c:1},r:{e:18,s:4,y:4,a:16,c:1,g:1,i:12,m:3,p:2,t:4,b:1,d:4,k:4,n:5,r:2,o:11,l:2,u:6,f:1},t:{a:14,s:17,e:18,i:9,o:15,h:10,t:3,y:2,c:1,z:1,u:5,r:5,w:2},d:{a:14,d:4,s:10,e:22,y:8,i:12,o:14,r:4,u:10,l:1},f:{a:16,f:6,e:12,y:1,i:14,l:13,o:16,r:7,u:7,t:7,n:1,s:1},g:{a:16,e:12,o:17,u:7,s:18,g:1,y:2,i:8,l:4,n:2,h:3,r:9,w:1},j:{a:25,i:7,e:14,o:25,u:29},k:{i:23,s:6,e:41,u:6,a:10,l:2,n:8,o:2,h:1,y:1},p:{s:12,e:20,a:19,y:2,i:13,t:2,u:10,l:5,o:13,r:4},s:{o:8,i:8,e:13,k:6,h:10,s:8,t:14,y:1,p:5,c:2,l:6,a:10,m:1,n:2,u:4,w:2},v:{a:18,e:47,i:22,o:8,y:6},y:{l:4,e:18,s:20,d:3,n:8,r:8,t:4,a:14,k:1,m:1,o:8,x:3,p:3,u:4,v:1},q:{u:100},w:{a:24,e:17,l:4,r:3,s:10,n:6,y:2,k:1,d:1,t:1,i:17,u:1,o:10,h:4},x:{e:35,i:18,l:6,o:6,a:6,t:12,y:18},z:{z:10,y:10,a:3,e:43,r:3,o:17,i:10,u:3}},p=1,x,y,i=0;for(;i<3;){x=w[i],y=w[++i];p*=g[x]&&g[x][y]||0}return p>60}

Ось робоча реалізація http://fiddle.jshell.net/jc73sjyn/

Коротше кажучи: Об'єкт g містить символи від a до z (як ключі), і для кожного з них існує набір символів (також як клавіші), кожен з яких представляє символ, який може з’явитися після, разом із його відсотком ймовірності . Там, де немає жодного об'єкта, немає ймовірності.

3 бали (4 літери -> 3 оцінки) множать, а слово з оцінкою 60 і вище вважається справжнім словом.

Приклад: для слова "впоратися" є три пошуки:

g [c] [o] = 20

g [o] [p] = 5

g [p] [e] = 20

бал = 20 * 5 * 20 = 2000, що більше 60, так що один дійсний.

(Я зовсім новий в JavaScript, тому можуть бути способи скоротити його, про що я не знаю.)

ПОСЛУГА РЕДАКТУ:

На сьогоднішній день абсолютно неважливо, але я оцінив свій шлях до більш правильного г:

g={a:{b:7,c:4,d:4,m:6,f:2,r:14,g:4,i:6,x:2,k:2,l:10,n:12,s:6,p:4,t:7,u:2,v:3,w:12,y:3,h:1,z:1},b:{b:10,a:19,e:19,y:3,l:6,o:17,u:10,i:9,s:9,r:3},e:{d:7,l:8,t:4,s:10,n:11,e:10,r:10,c:2,x:2,w:4,a:13,f:1,p:2,g:2,v:20,b:3,m:3,u:1,i:1,k:1,y:2},l:{e:16,y:5,a:16,b:1,f:2,l:12,m:2,o:14,p:1,s:6,u:61,d:1,i:10,k:3,t:5},o:{s:7,g:3,e:3,k:3,n:20,m:4,p:5,w:6,b:3,c:2,t:6,a:5,d:5,h:10,i:2,l:8,o:3,r:8,u:4,y:2,v:2,z:1,f:20,x:1},u:{t:8,e:5,m:7,s:11,a:2,n:13,r:15,d:6,c:1,f:10,g:5,l:9,y:1,z:1,b:5,j:1,x:1,p:2,k:1,i:2},c:{e:9,h:20,i:2,r:6,t:20,o:15,k:15,a:15,l:6,u:8,y:1},h:{e:21,r:2,a:7,i:15,o:20,u:15,n:10,l:0,y:1},i:{d:8,m:5,n:18,r:7,a:5,s:8,v:2,l:13,t:20,b:1,e:21,k:2,p:5,g:20,c:4,o:2,f:2,z:1},m:{e:10,s:8,a:21,i:12,m:1,o:15,y:2,b:4,p:2,n:1,u:8},n:{e:18,u:3,a:9,d:3,n:4,o:20,s:2,t:11,g:10,k:6,i:5,y:2,c:1},r:{e:15,s:4,y:4,a:16,c:1,g:1,i:12,m:3,p:2,t:4,b:1,d:4,k:4,n:5,r:2,o:11,l:2,u:20,f:1},t:{a:14,s:15,e:18,i:2,o:15,h:10,t:3,y:2,c:1,z:1,u:5,r:5,w:2},d:{a:14,d:4,s:10,e:61,y:8,i:12,o:7,r:3,u:10,l:0},f:{a:5,f:6,e:12,y:1,i:3,l:13,o:16,r:7,u:20,t:4,n:1,s:1},g:{a:16,e:12,o:17,u:7,s:18,g:0,y:2,i:8,l:3,n:2,h:3,r:9,w:1},j:{a:8,i:7,e:14,o:5,u:29},k:{i:3,s:20,e:41,u:6,a:10,l:20,n:8,o:2,h:1,y:1},p:{s:12,e:20,a:5,y:2,i:13,t:4,u:10,l:3,o:13,r:4},s:{o:8,i:8,e:13,k:6,h:10,s:8,t:14,y:1,p:5,c:2,l:2,a:10,m:2,n:6,u:8,w:2},v:{a:10,e:20,i:22,o:6,y:6},y:{l:6,e:15,s:20,d:3,n:8,r:8,t:4,a:4,k:1,m:1,o:3,x:3,p:3,u:1,v:1},q:{u:100},w:{a:24,e:17,l:4,r:2,s:3,n:6,y:20,k:1,d:1,t:1,i:17,u:6,o:10,h:20},x:{e:35,i:6,l:3,o:6,a:6,t:3,y:7},z:{z:10,y:10,a:3,e:43,r:1,o:8,i:7,u:1}}

Нові результати:

слова: 53 помилки, не слова: 159 помилок

http://fiddle.jshell.net/jc73sjyn/2/


Варто додати, що цифри були знайдені через оцінку 2236 правильних слів. Для кожної літери я просто підрахував би округлений відсоток кожного наступника. Я вважав, що робити те саме для неправильних слів і якось відняти їх, але думаю, що це зробить оцінку менш розумною і більше скористається обмеженим набором неправильних слів.
Генрік Крістенсен

2
Мені вдалося зменшити ваш код наскільки я міг. Я з'їв близько 80 байт. Не багато, але воно менше. Ось код: pastebin.com/fkPW0D92 . Я замінив ВСІ номери, які повторювалися більше 3 разів і все ще видалили багато набряку з вашого forциклу.
Ісмаїл Мігель

Забув згадати: він працює лише на Firefox / Firebug консолі. Для створення функцій використовується нова позначка великої стрілки ES6. Ви можете замінити w=>на, function(w)і він буде працювати для кожного браузера.
Ісмаїл Мігель

6

Python 2, 5254 байт

Це рішення розділяє добрі слова на дві половини. Шукає спочатку перевіряє перші два символи, щоб знайти потрібну рядок, потім шукає другі два символи в цій рядку. Не дуже компактно, але швидко писати. Цей метод відповідає помилкам кожного слова.

d='''gwenyn
guamlflllpmsnsrushsttsys
grabadamayegeweyidiminipisitowub
gyro
gearldlsmsnentrmts
gagsilinitlellltmengpepsrbryshspteulvewkze
goadalatbidsesffghldlfnengodofreryshtoutwn
gnataw
gladeeenowueut
giftldllltnannnonsrdrlrtstve
wrapenit
leadafakanaparekeresftgsnandnsntonsssttsvivywd
labsceckcydsdygsidinirkembmempnandnengospsrdrkrsshssstteuevawnwsyszy
loadafanbecickebftgogsiniskilambmenengokomonopotrdresesssttsudutvewews
tubebsckftgsnerfrn
trapayeeekimioipodotoyueuk
liarceckdsedeneseufeftkelalymambmempndnenkntonpssasespssstve
toadbyddesgoilldllmbneninsokolpsrernrysstourwnys
luckcyiskellmpndngrarerkshsttetz
thaianataweaemeneyinisorudugus
tickdedyedereslellltmemsnansntnypsretots
teamarasemenllndnsntrmssstxt
lylennnxonrare
dockdderesgegslellmenensomorperasetetsugvewnze
typepo
yokerkstur
dialcedoedemesetgskellmemsnengntonpsrertscshskve
yagilenkrdrnwn
deadafalanarbtckedemeperfyllmonsntnyskuswy
yearaslllp
dadadedshllelilymemnmpmsnanererkrnrtshtatevevywnysze
dyadedereskene
dualbsckctelesetkelllymbmpnengnknnpeskstty
drabagamawewipopugum
yves
yubakiri
quadayipitiz
iranaqesisksmaon
emilitma
elbakslamsse
endsidosvy
eire
zincon
ekedes
eels
eddyengeitna
egangsos
eachrlrnrprssestsyts
echo
ebbsen
eyederes
examecit
ezra
etch
ewenes
eveneril
wokelfmbngntodofolosrdrerkrmrnve
epic
espy
erasgoicieikisneosrs
rubebsbydedygsinlempngnsntshssstthts
ryan
readalamapardodsedefelidinlymynandnenontstub
raceckftgegsidilinkemompmsndngnkntpepsptreshsptetsulveysze
itchelem
roadamarbebsckdedslellmempofokomotpesasesssythtsutvewewsxy
rhea
ribscacechckcodedsftgagsllmemsndngnkotpepsscsesktetz
beadakamanaratauckdsefeneperesetgslallltlyndntnzrnrtsssttatsvy
weakanarbbbsdsedekephrldllntptrestts
babebychckdegsilitjakekuldlelilklllmndnengnknsrbrdrerkrnrrrsrtseshskssthtsudwlys
wacodeftgegshlilitkelkllltndnengntrdrermrnrprsrtryshspvexyys
blabedewipobocotowueumur
juandddedodygslympnengnknorareryst
boaratbscadedyergshrilisldllltmbndnengnnnyobokomonorosotrergrnsessthutwlwsydys
biasbsdedsenerkelelkllndngninsrdtets
wickdeerfegsldlellltlyndnengnknspereryseshspthtstt
whatenimipitizom
buckdddsffgslblkllmpmsnknsntoyrlrnrprrrtryshssstsyttyszz
joanbsdyelesgshninkeltsetsveys
jigsll
braeaganasatayedewieigimowyn
jeaneperffrksttsws
byrdte
wynn
ooze
onceeslytousyx
omanenit
olafavdyeggain
okay
oilsly
ohio
offs
oddsesinor
obeyoe
oaksrsthts
ivan
stabaganarayemepewiropowubudunyx
oxen
owedeneslsns
ovalenerid
ouchrsstts
otisto
oslo
oralesgyinly
opalecelentsus
vialcedaederesetewlenesatato
citety
chadaoaparatefenewicinipitopouum
coalataxbbcackcodedyedgshnilinkeldleltmbmeneokolonoppepspyrdrerkrnstsytsvewlwszy
cladamanapawayioipodogotubueuj
cabsdyfegeinkelflllmmempnensntpepsrdrerlrprrrsrtseshsksttsve
cedellltntrn
czar
cyst
zoneomosrn
crabagamayeeewibopowuduxuz
cubabebsedesffllltpsrbrdrerlrsrtsptets
vealdaergailinlannntrarbrnrystto
prayepeyimodoposow
pubsffghkelllpmampnsntnypapsrerrshsststt
smogugut
pylere
jabsckdeilkemsnersvawszz
paceckctdsgeidilinirlelllmlolsnengnsntparcrerkrrrsrtsosssttethtsulvewnwsys
peakalarasatckekelepergsltndnhnnnsntrkrusttetsws
phil
picackcteresgskelellmpnengnknsntonpesassthtstttyus
isisle
planayeaodotowoyugumus
hydemn
hubsckeseygeghgollmempmsngnknsntrdrlrtshskts
hickdeghkellltndntpsresstsve
hoaresffgsldlelmlymemoneodofokopotpepipsrnsesturwewlyt
haagasckhnilirlelfllltmsndngnsrdrerkrmrprtshtetsulvewkyszezy
headalaparatbeckedelirldlllmlpmpmsnsrarbrdrerorrrsssws
meadalanateketltmondnsnureshsstatetsws
macechdeidiliminkelelillltmanennnsnypsrcrerkrsrtrxryshsksssttethtsttulwryayoze
utah
moanatbsckdeenhrldlellnankntodonorotpsrernssstthvews
micaceckenkeldlelkllmindneninkntpsraressst
upon
twasiginos
podsemetgokelelklllompndngnyolorpepsrerkrtseshsttsurut
muchckddffgsirlellngseshsksttettzo
ulan
undoitixixto
imps
ugly
tabsckctftgsilkelelkllmengnkospepsrartskssteutxi
myrath
illsly
vailinlenensrysestts
acesheidmeneretats
abbabebyedeletlelyosut
adamdsen
agaredeeeresogue
afar
aidadedsmsnursry
swabamanapatayimum
akin
ajarax
amenesidmookosyl
alanarasbaeceeexfagalymamsoepssoumva
analdyewnaneonsitetitsus
aqua
apedesexse
asiaks
arabchcocseaesgoidmsmypats
auntrato
atomop
awayedlsry
averidisivonow
ayes
axedeleresisleon
icedeson
ibexidis
ideaemlelyol
igor
ifni
niceckghlenaneps
usederes
noahdedselllneokonrarmseteun
nagsgyilirmepsrysashtetourvyzi
nealaratckedffilllonrosssttsvawswtxt
voidltsstews
zulu
nudellmbnsts
franauayedeeeteyogomye
urdugeisnssa
fueljillmendnkrsrysesszz
ionstawa
facectdegsilinirkelkllmengnsrermsttetsunwnze
fearatedelesetllltndrnssud
zealrostus
fiateffegsjilelllmndnenknnnsrermshsksttsve
flagakamapatawaxeaedeeewexipitogopowueux
foalamciesgsgyilldlkndntodolotrdrerkrmrtssulurwl
kahnlinentrlrptetz
incachdodyksnsto
keelenepmpntptrnrrys
kickdselevllndngnkrksstets
spanatecedinitotunur
kochng
kneeewitobotowox
subschckdsedesezitlkmsngnknsrerf
klanux
skewidiminipisitye
siamanckdeftghgnkhlkllloltmsnengnknspsrerstetstuvaze
shameaedinipitodoeopotowunut
soakaparbsckdadsfaftilldlelomengnsnyonotrertulupurwnya
snagapipobowubug
kudohnrdrt
slabamapatavayedewidimipitobopotowugumur
scabanarotowud
sackfegagegsidilkelelkltlzmenandnengnkpsrarishteudulvewsys
sealamanarasatctedekemenepereslfllmindntptrfthtswsxy'''
w=raw_input()
s=[t[2:] for t in d.split() if t[:2]==w[:2]]
print s and w[2:] in [s[0][i:i+2] for i in range(0,len(s[0]),2)]

5

C # WPF, 110 139

Коротше

bool F(string s){var t=new TextBox();t.SpellCheck.IsEnabled=true;t.Text=s;return t.GetSpellingError(0)==null;}

Стара відповідь

public bool F(string s){TextBox t=new TextBox();t.SpellCheck.IsEnabled=true;t.Text=s;SpellingError e=t.GetSpellingError(0);return e==null;}

1
Це займає локаль за замовчуванням? :)
RobAu

@RobAu Не впевнений, вперше я його використав.
bacchusbeale

Ви можете зробити це трохи коротше, використовуючи varта не вводячи змінні, якщо не потрібно.
менше

3

Слово VBA, 25 байт

Анонімна функція негайного вікна VBE, яка приймає введення як поточний вибір і видає, якщо це слово булеве для безпосереднього вікна VBE.

?CheckSpelling(Selection)

Функція тестера

Нижченаведена функція була використана для тестування вищевказаної функції на тест-шарах. У функції не вдалося 9,07 відсотків випадків (396 справжніх слів і 10 підроблених слів)

i=0:For Each w In Split(Selection,vbcr):i=i-CheckSpelling(w):Next:?i" were recognized as words

2

Математика, 33 байти

Гей, хтось повинен був це зробити!

Length[DictionaryLookup[Input[]]]

Самопояснення.


0

Javascript ES6, 32 байти:

Використовуючи регулярний вираз від відповіді @ Sp3000 :

s=>!/[^aeiou]{3}|[jqxz]/.test(s)

Це створює анонімну функцію. Щоб скористатися ним, просто обгорніть його ().

Приклад:

(s=>!/[^aeiou]{3}|[jqxz]/.test(s))('word')

Це точно такий же показник відмов, як @ Sp3000, і повертається trueабо falseвідповідно.

Усі кредити за рахунок @ Sp3000 за те, що я дозволив мені використовувати його регулярний вираз.


@ Sp3000 Але тоді ви не зможете його зателефонувати. Це те саме, що F = function(s) { return /[^aeiou]{3}|[jqxz]/.test(s) }.
Ісмаїл Мігель

@ Sp3000 Я знаю, що це працює, але вам доведеться витратити більше байтів, щоб використовувати його.
Ісмаїл Мігель

@ Sp3000 ДАНІТЬ це! За крок від її скорочення: / Дякую за пораду. Я оновив його.
Ісмаїл Мігель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.