これは一言ですか?


54

入力として4文字の文字列を取り、その文字列が英語の単語かどうかを示す値を出力するプログラムまたは関数を作成する必要があります。提供されたテストケースの15%で間違いを犯すことができます。

入力の詳細:

入力は、小文字の英字(az)のみを含む4文字のストリングです。

出力の詳細:

入力英語の単語である場合、ブール値trueまたは整数を出力する必要があります1

入力英語の単語でない場合は、ブール値falseまたは整数を出力する必要があります0

単語リスト

4文字の英語の単語のリスト(2236単語)

4文字の非単語文字列のリスト(2236文字列)

非単語リストには、実際の単語が削除された、一様にランダムに生成された文字シーケンスが含まれます。

テスト中

プログラムまたは関数は、指定された単語リストで15%以内の間違いを犯してはなりません。つまり、提供された4472の入力のうち670に対して間違った出力を与える可能性があります。

他の人が答えを確認できるように、テストプログラムまたは機能も投稿する必要があります。テストプログラムの長さは、提出スコアにカウントされません。

標準の抜け穴は許可されていません。

あなたのプログラムは、ウェブへのアクセスやファイルからの読み取りなど、外部ソースを使用しないでください。

これはコードゴルフなので、最短のプログラムまたは機能が優先されます。


4
その配列はコードの一部でなければなりません。(私は推測する)。@randomra-どこからでも単語リストの読み取り/アクセスができないことに注意してください。-
オプティマイザー

3
@BryanDevaneyリストの85%のみをハードコーディングする必要があります
-dwana

1
@TeunPronkはい。
-randomra


5
これは言葉ですか?」はい。[<-4文字]
15

回答:


62

ルビー、29バイト

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

うまくいけば、私はこれが正しいことです-Rubyでの初めてのプログラミングです。実際にはすべてのテストをPythonで行いましたimport reが、私には長すぎました。

これは、文字列を受け取り、true/falseそれに応じて出力する匿名関数です。次の2つのうちの1つを探す正規表現を使用します。

  • 行の3つの子音
  • のいずれかを含む jqxz

これらのいずれかが存在する場合、入力を単語ではないものとして分類します。

この関数は、2030個の単語(206で誤って失敗)と一致し、1782個の非単語(454で誤って一致)で失敗し、合計で660の誤分類が発生します。イデオンでテスト済み

Rubyのヘルプを提供してくれた@MartinBüttnerに感謝します。Martinはまた、完全なプログラムは同じバイト数を必要とすることも指摘しています。

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

また、正規表現を簡素化してくれたuser20150203にも感謝します。


ルビー、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これ言葉です)。

私は別の課題のために書いた正規表現のゴルフクリーナーに正規表現を投げました。手動で物事をシャッフルしようとする前に約300バイトをゴルフしました。しかし、ゴルフをするのはまだかなりあります。


1
user20150203(担当者のコメントなし)は、この議論に基づいて拒否した編集で次のことを示唆しました:「評判のない新しいユーザーによる編集:->s{!s[/[^aeiou]{3}|[jqxz]/]}29バイトのみで2030ワードに一致し(206で誤って失敗)、1782で失敗しますnon -単語(誤って454と一致)、合計660の誤分類。」
マーティンエンダー

それは奇妙です、私はそれぞれの文字を削除することをテストしたと思った-を忘れてvいるに違いない。ありがとうuser20150203!
Sp3000

@ Sp3000私の答えに正規表現を使用する許可を与えますか?私はあなたの評判を(可能であれば)クレジットします、そして、すべてのクレジットは答えで指摘されます。
イスマエルミゲル

@IsmaelMiguelそれは正規表現の一致のための関数を書くのがはるかに短い言語ですか?もしそうなら、私は(!そう、私は次の時間のためにそれを盗むことができます)...私は少し好奇心が強い認める
SP3000

@ Sp3000短くはありません。しかし、私は何かを投稿したいだけです。とにかくここに何かを投稿してから長い時間が経ちました。そして、それは私の知識を少し広げます。ですから、私にとっては双方にとって有利な状況です。そして、可能であれば、私はあなたにいくらかの評判を与えますので、それはあなたにとっても勝ちです(おそらく)。
イスマエルミゲル

13

グルーヴィー、77 74

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

テストプログラムはJavaで作成しました。これはGithubのこのGistにあります。テストプログラムの出力は次のとおりです。

Good: 2135 1708
Bad: 101 528

(失敗した629テストケース)

PS私はこれが非常にすぐに正規表現のゴルフの問題を終わらせるだろうと思う...

場合SP3000の答え(機能)のGroovyに変換される、それは同じ文字カウントになってしまいます。名前付き関数として:

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

または名前のない関数:

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

が)それでもかなりきちんとした、それだけで335例を失敗する可能性があります
Teunプロンク

これはとても間違っているように感じますが、それでも動作します^^
dwana

@TeunPronk:(2236 + 2236)* 0.15 = 670.8 670に失敗する可能性があります。非単語を正しく分類することを忘れていると思います。「あなたのプログラムまたは関数は、与えられた単語リストで一緒に 15%以下の間違いを犯してはいけません。」(強調鉱山)
ニールスレーター

@NeilSlater Aah、うん、正しいものだけを考えた。私の悪い^^
テウンプロンク

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以上の単語は実際の単語と見なされます。

例:「cope」という単語には、3つの検索があります。

g [c] [o] = 20

g [o] [p] = 5

g [p] [e] = 20

スコア= 20 * 5 * 20 = 2000、これは60より大きいため、1つは有効です。

(私はjavascriptを初めて使用するので、知らないうちに短くする方法があるかもしれません。)

後期編集:

今では完全に無関係ですが、より正しいgへの道を評価しました。

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バイト

このソリューションは、良い言葉を2つの半分に分けます。ルックアップは最初に最初の2文字をチェックして正しい文字列を見つけ、次にその文字列の2番目の2文字を探します。非常にコンパクトではありませんが、すぐに記述できます。この方法は、すべての単語を間違いなく一致させます。

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確かに、初めて使用したとき。
バッカスビール

var必要な場合を除き、変数を使用して変数を導入しないことで、かなり短くすることができます。
-lesderid

3

Word 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

Mathematica、33バイト

ねえ、誰かがそれをしなければならなかった!

Length[DictionaryLookup[Input[]]]

一目瞭然。


0

Javascript ES6、32バイト:

@ Sp3000 answerから正規表現を使用して:

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 DANG it!それを短くすることからの一歩:/ヒントをありがとう。更新しました。
イスマエルミゲル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.