Bu bir kelime bile mi?


54

Giriş olarak 4 karakterli bir dize alan ve dize İngilizce bir kelime olup olmadığını belirten bir değer veren bir program veya işlev yazmalısınız. Sunulan testlerin% 15'inde hata yapabilirsin.

Giriş detayları:

Giriş, yalnızca küçük harf İngilizce harfleri (az) içeren 4 karakterli bir dizedir.

Çıkış detayları:

Girdi bir İngilizce kelime ise , bir boole trueveya tamsayı çıktısı almalısınız 1.

Giriş İngilizce bir kelime değilse , bir boole falseveya bir tamsayı çıkarmalısınız 0.

Kelime listeleri

4 harfli İngilizce kelimelerin listesi (2236 kelime)

4 harfli sözcük olmayan dizelerin listesi (2236 dizeler)

Kelime olmayan liste, onlardan alınan gerçek kelimelerle düzgün bir şekilde rasgele oluşturulmuş harf dizileri içerir.

Test yapmak

Programınız veya işleviniz birlikte verilen kelime listelerinde% 15'ten fazla hata yapmamalıdır. Bu, sağlanan 4472'nin 670'i için hatalı çıktı verebileceğiniz anlamına gelir.

Test programını veya işlevini de göndermelisiniz, böylece diğerleri cevabınızı kontrol edebilir. Test programınızın uzunluğu, başvuru puanınıza dahil değildir.

Standart boşluklara izin verilmez.

Programınız web'e erişmek veya dosyadan okumak gibi herhangi bir harici kaynak kullanmamalıdır.

Bu kod golf yani en kısa program veya işlev kazanır.


4
Bu dizi kodun bir parçası olmalı. (Sanırım). @randomra - Kelime listesini herhangi bir yerden okuyamayacağınıza / erişemeyeceğinize dikkat edin ..
Doktor

3
@BryanDevaney sadece listenin% 85'ini
kodlamalısınız

1
@TeunPronk Evet.
randomra

2
@Sparr Sorunu çözmenin başka yolları da var, bu sorudaki
Sp3000

5
Bu bir kelime bile mi?” Evet. [<- 4 karakter]
chucksmash

Yanıtlar:


62

Ruby, 29 bayt

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

Umarım bu hakka sahibim - bu Ruby'de ilk kez programlamam. Aslında tüm testlerimi Python'da yaptım, ama benim import reiçin çok uzundu.

Bu, bir dizgede geçen ve true/falsebuna göre çıktı veren adsız bir işlevdir . Aşağıdaki iki şeyden birini arayan bir regex kullanır:

  • Üst üste üç ünsüz
  • Birini içerir jqxz

Bunlardan herhangi biri mevcutsa, girişi bir kelime değil olarak sınıflandırırız.

İşlev, toplam 660 yanlış sınıflandırma için, 2030 kelimeyle eşleşir (yanlış şekilde 206'da başarısız olur) ve 1782 sözcük olmayan kelimelerde (yanlış eşleşen 454) başarısız olur. İdeone üzerinde test edilmiştir .

Ruby yardımı için @ MartinBüttner'e teşekkür ederiz. Martin ayrıca, tam bir programın aynı sayıda bayt aldığını da belirtir:

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

Ayrıca regex'i basitleştirmek için user20150203'e teşekkürler.


Ruby, 1586 1488 1349 1288 1203 bayt

Bir bonus için, işte çok daha uzun regex ile bir fonksiyon:

->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]/]}

Regex'in hala sıkıştırmayı geçebileceğini göstermek istedim, bu yüzden verilen her durumu doğru şekilde sınıflandırıyor . Regex'in kendisi biraz üssel bir çürüme gibidir - ilk bitler çok fazla kelime olmadan eşleşir, daha sonra her bit eşleşmeden sonra daha az ve daha az eşleşir ve sonunda geri kalanı (yaklaşık 200 ya da öylesine) birleştirir. Kalmıştı olanlardan bazıları şaşırtıcı gerçek kelimeler (örneğin benziyordu chiahangi olan bir kelime).

Regex'i başka bir meydan okuma için yazdığım regex golf temizleyicime attım - etrafta elle karıştırmayı denemeden önce yaklaşık 300 byte golf attı. Yine de golf oynamak için hala adil bir parça var.


1
user20150203 (yorum yapacak cevaptan yoksun) , bu tartışmaya dayanarak reddettiğim bir düzenlemede şunu önerdi : "İtibar sahibi olmayan yeni bir kullanıcı tarafından düzenle: ->s{!s[/[^aeiou]{3}|[jqxz]/]}yalnızca 29 bayt var ve 2030 kelimeyle eşleşiyor (206'da yanlış yazıyor) ve 1782 -words (hatalı eşleşen 454), toplam 660 yanlış sınıflandırma için. "
Martin Ender

Bu garip, her bir karakterin çıkarılmasını test ettiğimi düşündüm - unutmuş olmalıyım v. User20150203 teşekkürler!
Sp3000

@ Sp3000 Düzenli ifadenizi benim için bir cevapta kullanma yetkisi veriyor musunuz? Size itibarla (mümkünse) kredi vereceğim ve tüm krediler cevapta belirtilecektir.
Ismael Miguel,

@IsmaelMiguel Regex eşleşmesi için bir işlev yazmanın çok daha kısa olduğu bir dil mi? Öyleyse itiraf ediyorum biraz meraklıyım ... (bu yüzden bir dahaki sefere çalabilirim!)
Sp3000

@ Sp3000 Daha kısa değil. Ama ben sadece bir şey göndermek istiyorum. Zaten burada bir şey yayınladığımdan beri uzun zaman geçti. Ve bilgimi biraz daha genişletecek. Yani, bu benim için bir kazan-kazan durumu. Ve eğer mümkünse, size biraz itibar tanıyacağım, bu yüzden, bu sizin için de bir kazançtır (muhtemelen).
Ismael Miguel,

13

Harika, 77 74

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

Test programını Java'da yazdım, ki bu Github'taki Gist'te bulabilirsiniz . Test programımın çıktısı:

Good: 2135 1708
Bad: 101 528

(629 test vakası başarısız oldu)

Ps Bu çok yakında bir regex golf sorunu sona ereceğini düşünüyorum ...

Eğer SP3000 cevabı (fonksiyonu) Groovy dönüştürülecek olan, aynı karakter sayısı ile sona erecek. Adlandırılmış işlev:

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

veya adlandırılmamış işlev:

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

sadece 335 vakada başarısız olabilir;) ama yine de oldukça temiz olsa
Teun Pronk

bu çok yanlış geliyor, ama işe yarıyor ^^
dwana

TePronk: (2236 + 2236) * 0.15 = 670.8. 670 başarısız olabilirsiniz. Sanırım kelimeleri doğru bir şekilde sınıflandırmayı unutmuşsunuz. “Programınız veya işleviniz birlikte verilen kelime listelerinde% 15'ten fazla hata yapmamalıdır .” (vurgu madeni)
Neil Slater,

@NeilSlater Aah, Yup, sadece doğru olanları düşündüm. Benim kötü ^^
Teun Pronk

9

Javascript, 1626 bayt:

Her karakter için birinden sonra gelebileceklerine dair bir ipucu olan bir çözüm bulmak istedim. O kadar kısa değil, ancak regex yok ve oldukça iyi bir sonuç (kelimeler: 101 hata, kelime dışı, 228 hata)

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}

İşte çalışan bir uygulama: http://fiddle.jshell.net/jc73sjyn/

Kısacası: Nesne g, karakterleri a'dan z'ye (tuşlar olarak) tutar ve her biri için olasılık yüzdesi ile birlikte sonradan gelebilecek bir karakteri temsil eden bir karakter dizisi (tuşlar olarak da) bulunur. . Hiçbir nesnenin olmadığı yerde, olasılık yoktur.

3 puan (4 harf -> 3 değerlendirme) çarpılır ve 60 ve üzerinde puan alan bir kelime gerçek bir kelime olarak kabul edilir.

Örnek: 'cope' kelimesi için üç arama vardır:

g [c] [o] = 20

g [o] [p] = 5

g [p] [e] = 20

puan = 20 * 5 * 20 = 2000, ki bu 60'tan büyüktür, biri geçerli olur.

(Javascript konusunda oldukça yeniyim, bu yüzden bilmediğim kadarını kısaltmanın yolları olabilir.)

SON KURULUMU:

Şimdiye dek tamamen alakasız, ancak yolumu daha doğru bir şekilde değerlendirdim:

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}}

Yeni sonuçlar:

kelimeler: 53 hata, kelime dışı: 159 hata

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


Rakamların 2236 doğru kelimenin değerlendirilmesiyle bulunduğunu da eklemeliyim. Her harf için, her halefin yuvarlatılmış yüzdesini hesaplayacağım. Aynı şeyi yanlış kelimeler için yapmayı düşündüm ve bir şekilde çıkardıklarını düşündüm, ancak değerlendirmenin daha az akıllıca yapıldığını ve sınırlı yanlış kelime grubunun avantajlarından yararlanacağını düşünüyorum.
Henrik Christensen,

2
Kodunu olabildiğince azaltmayı başardım. Ben yaklaşık 80 byte yedim. Çok değil, ama daha küçük. İşte kod: pastebin.com/fkPW0D92 . 3 defadan fazla tekrarlanan TÜM numaraları değiştirdim ve hala döngünüzdeki birçok şişkinliği kaldırdım for.
Ismael Miguel,

Bahsetmeyi unuttum: sadece Firefox / Firebug konsolunda çalışıyor. İşlev oluşturmak için yeni ES6 büyük ok gösterimini kullanır. w=>Tarafından değiştirebilir function(w)ve her tarayıcı için işe yarar.
Ismael Miguel, 19

6

Python 2, 5254 bayt

Bu çözüm, iyi kelimeleri iki yarıya ayırır. Arama ilk önce doğru dizgiyi bulmak için ilk 2 karakteri kontrol eder, daha sonra bu dizgideki ikinci 2 karakteri arar. Çok kompakt değil, ancak hızlı yazılabilir. Bu yöntem hatasız her kelimeyle eşleşir.

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

Daha kısa

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

Eski cevap

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
Varsayılan yerel ayarı alıyor mu? :)
RobAu

@RobAu İlk kullandığımda emin değilim.
bacchusbeale

varGerekmedikçe değişkenleri kullanarak ve kullanmayarak biraz daha kısaltabilirsiniz.
lesderid

3

Kelime VBA, 25 Bayt

Geçerli seçim olarak giriş alan ve VBE anında penceresine boolean bir sözcük ise çıktısını alan anonim VBE anlık pencere işlevi.

?CheckSpelling(Selection)

Test Cihazı İşlevi

Aşağıdaki işlev, yukarıdaki işlevi test evrelerine karşı test etmek için kullanıldı. İşlev, vakaların yüzde 9,07'sinde başarısız oldu (gerçek kelimelerin 396'sı ve sahte kelimelerin 10'u)

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

2

Mathematica, 33 bayt

Hey, biri yapmak zorundaydı!

Length[DictionaryLookup[Input[]]]

Kendinden açıklayıcı.


0

Javascript ES6, 32 bayt:

@ Sp3000 yanıtındaki regex'i kullanma :

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

Bu anonim bir işlev oluşturur. Kullanmak için, sadece etrafına sarın ().

Örnek:

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

Bu tam olarak @ Sp3000 ile aynı başarısızlık oranına sahip ve döner trueveya falsebuna göre.

Regex'ini kullanmama izin verdiği için @ Sp3000'e bağlı tüm krediler.


@ Sp3000 Ama sonra arayamazsınız. Bu aynı F = function(s) { return /[^aeiou]{3}|[jqxz]/.test(s) }.
Ismael Miguel,

@ Sp3000 Çalıştığını biliyorum, ancak kullanmak için daha fazla bayt harcamanız gerekiyor.
Ismael Miguel,

@ Sp3000 TEHLİKE! Kısaltmaktan bir adım uzakta: / İpucu için teşekkürler. Güncelledim.
Ismael Miguel,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.