นี่เป็นคำเดียวหรือเปล่า?


54

คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้สายอักขระ 4 ตัวเป็นอินพุตและเอาต์พุตที่ระบุว่าสตริงเป็นคำภาษาอังกฤษหรือไม่ คุณได้รับอนุญาตให้ทำผิดพลาดใน 15% ของการทดสอบที่ให้ไว้

รายละเอียดการป้อนข้อมูล:

อินพุตเป็นสตริง 4 อักขระที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (az) เท่านั้น

รายละเอียดผลลัพธ์:

ถ้าใส่เป็นคำภาษาอังกฤษที่คุณควรเอาท์พุทบูลหรือจำนวนเต็มtrue1

ถ้าใส่ไม่ได้เป็นคำภาษาอังกฤษที่คุณควรเอาท์พุทบูลหรือจำนวนเต็มfalse0

รายการคำ

รายการคำภาษาอังกฤษ 4 ตัว (2236 คำ)

รายการสตริงที่ไม่ใช่คำ 4 ตัวอักษร (2236 สตริง)

รายการที่ไม่ใช่คำมีลำดับตัวอักษรที่สร้างขึ้นแบบสุ่มพร้อมกับลบคำที่แท้จริงออกจากพวกเขา

การทดสอบ

โปรแกรมหรือฟังก์ชั่นของคุณไม่ควรทำผิดพลาดเกินกว่า 15% ของรายการคำที่กำหนดพร้อมกัน นั่นหมายความว่าคุณสามารถให้สัญญาณที่ผิดสำหรับ 670 ​​จาก 4472 ที่มีให้

คุณควรโพสต์โปรแกรมทดสอบหรือฟังก์ชั่นเพื่อให้ผู้อื่นสามารถตรวจสอบคำตอบของคุณ ความยาวของโปรแกรมทดสอบของคุณไม่นับรวมอยู่ในคะแนนที่คุณส่ง

ช่องโหว่มาตรฐานไม่ได้รับอนุญาต

โปรแกรมของคุณไม่ควรใช้แหล่งข้อมูลภายนอกใด ๆ เช่นการเข้าถึงเว็บหรืออ่านจากไฟล์

นี่คือรหัสกอล์ฟเพื่อให้โปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดชนะ


4
อาร์เรย์นั้นจะต้องเป็นส่วนหนึ่งของรหัส (ฉันคิดว่า). @randomra - โปรดระวังว่าคุณไม่สามารถอ่าน / เข้าถึงรายการคำศัพท์ได้จากทุกที่ ..
เครื่องมือเพิ่มประสิทธิภาพ

3
@BryanDevaney คุณควรรหัสยาก 85% ของรายการ
dwana

1
@TeunPronk ใช่
randomra

2
@Sparr ยังมีวิธีอื่นในการแก้ปัญหาดังเช่นในคำถามนี้
Sp3000

5
"คือนี้แม้คำ?" ใช่. [<- 4 ตัวอักษร]
chucksmash

คำตอบ:


62

Ruby, 29 ไบต์

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

หวังว่าฉันจะได้รับสิทธินี้ - มันเป็นครั้งแรกที่ฉันเขียนโปรแกรมใน Ruby ฉันทำการทดสอบด้วย Python ทั้งหมด แต่จริง ๆ แล้วimport reมันนานเกินไปสำหรับฉัน

นี่คือฟังก์ชั่นที่ไม่ระบุชื่อซึ่งใช้ในสตริงและเอาต์พุตtrue/falseตามลำดับ มันใช้ regex ซึ่งค้นหาหนึ่งในสองสิ่งต่อไปนี้:

  • พยัญชนะสามตัวเรียงกันเป็นแถว
  • มีหนึ่งใน jqxz

หากมีสิ่งใดสิ่งหนึ่งเหล่านี้เราจะจำแนกอินพุตที่ไม่ใช่คำ

ฟังก์ชันตรงกับ 2030 คำ (ไม่ถูกต้องใน 206) และล้มเหลวใน 1782 ไม่ใช่คำ (ตรงไม่ถูกต้อง 454) รวมเป็น 660 การจำแนกประเภท การทดสอบบน ideone

ขอบคุณ @ MartinBüttnerสำหรับความช่วยเหลือของ Ruby Martin ยังชี้ให้เห็นว่าโปรแกรมแบบเต็มใช้จำนวนไบต์เท่ากัน

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

นอกจากนี้ต้องขอบคุณ user20150203 สำหรับการทำให้ regex ง่ายขึ้น


Ruby, 1586 1488 1349 1288 1203 ไบต์

สำหรับโบนัสนี่คือฟังก์ชันที่มี regex ที่ยาวกว่ามาก:

->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 ยังสามารถเอาชนะการบีบอัดเพื่อให้คนนี้classifies กรณีที่ได้รับทุกอย่างถูกต้อง Regex นั้นเหมือนการสลายแบบเลขชี้กำลัง - บิตแรกจับคู่กับคำที่ไม่ใช่จำนวนมากจากนั้นทุก ๆ บิตหลังจากจับคู่น้อยลงเรื่อย ๆ จนกระทั่งฉันยอมแพ้และตัดแบ่งส่วนที่เหลือ (ประมาณ 200 หรือดังนั้น) บางคำที่เหลืออยู่นั้นดูประหลาดใจเหมือนคำพูดจริง (เช่นchiaซึ่งเป็นคำ)

ฉันขว้าง regex ที่เครื่องทำความสะอาดสนามกอล์ฟ regex ของฉันซึ่งฉันเขียนสำหรับความท้าทายอื่น - มันมีขนาดประมาณ 300 ไบท์ก่อนที่ฉันจะต้องพยายามสับสิ่งต่าง ๆ ด้วยตนเอง ยังคงมีความยุติธรรมที่จะตีกอล์ฟ


1
user20150203 (ขาดตัวแทนเพื่อแสดงความคิดเห็น) แนะนำสิ่งต่อไปนี้ในการแก้ไขที่ฉันปฏิเสธตามการสนทนานี้ : "แก้ไขโดยผู้ใช้ใหม่ที่ไม่มีชื่อเสียง: ->s{!s[/[^aeiou]{3}|[jqxz]/]}มีเพียง 29 ไบต์และตรงกับ 2030 คำ (ไม่ถูกต้องใน 206) และล้มเหลวใน 1782 - คำหลัก (จับคู่ 454 ไม่ถูกต้อง) รวม 660 การจำแนกประเภท "
Martin Ender

แปลกมากฉันคิดว่าฉันทดสอบการลบถ่านแต่ละตัว - ต้องลืมไปvแล้ว ขอบคุณ user20150203!
Sp3000

@ Sp3000 คุณอนุญาตให้ฉันใช้ regex ของคุณในคำตอบสำหรับฉันหรือไม่? ฉันจะให้เครดิตคุณด้วยชื่อเสียง (ถ้าเป็นไปได้) และเครดิตทั้งหมดจะถูกระบุในคำตอบ
Ismael Miguel

@IsmaelMiguel มันเป็นเพียงภาษาที่สั้นกว่ามากในการเขียนฟังก์ชั่นสำหรับการแข่งขัน regex หรือไม่? ถ้าเป็นเช่นนั้นฉันยอมรับว่าฉันอยากรู้อยากเห็นเล็ก ๆ น้อย ๆ ... (ดังนั้นฉันสามารถขโมยได้ในครั้งต่อไป!)
Sp3000

@ Sp3000 มันไม่สั้น แต่ฉันต้องการโพสต์บางสิ่ง เป็นเวลานานแล้วที่ฉันโพสต์ที่นี่แล้ว และมันจะขยายความรู้ของฉันเล็กน้อย ดังนั้นมันจึงเป็นสถานการณ์ที่ชนะสำหรับฉัน และฉันจะให้ชื่อเสียงคุณถ้าเป็นไปได้มันก็เป็นชัยชนะสำหรับคุณเช่นกัน
Ismael Miguel

13

Groovy, 77 74

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

ฉันเขียนโปรแกรมทดสอบใน Java ซึ่งคุณสามารถหาได้ในGistub นี้ใน Github นี่คือผลลัพธ์จากโปรแกรมทดสอบของฉัน:

Good: 2135 1708
Bad: 101 528

(กรณีทดสอบล้มเหลว 629 รายการ)

ป.ล. ฉันคิดว่าสิ่งนี้จะจบลงด้วยปัญหากอล์ฟ regex เร็ว ๆ นี้ ...

หากคำตอบของ 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% ของรายการคำที่กำหนดไว้ด้วยกัน " (เน้นที่เหมือง)
Neil Slater

@ NeilSlater Aah, Yup ฉันแค่พิจารณาสิ่งที่ถูกต้องเท่านั้น ฉันไม่ดี ^^
Teun Pronk

9

Javascript, 1626 ไบต์:

ฉันอยากจะไปหาทางแก้ปัญหาซึ่งสำหรับตัวละครแต่ละตัวนั้นมีเงื่อนงำที่ใครบางคนอาจจะตามมา ไม่ใช่สั้น ๆ แต่ไม่มี regex และผลลัพธ์ที่ค่อนข้างดี (คำ: 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/

กล่าวโดยย่อ: Object 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 ที่ถูกต้องมากขึ้น:

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 สำหรับจดหมายทุกฉบับฉันเพียงแค่คำนวณเปอร์เซ็นต์ที่ปัดเศษของผู้สืบทอดแต่ละคน ฉันคิดว่าการทำแบบเดียวกันกับคำที่ผิดและอย่างใดก็ลบออก แต่ฉันคิดว่ามันจะทำให้การประเมินผลน้อยลงและฉลาดขึ้นและใช้ประโยชน์จากชุดคำศัพท์ที่ จำกัด มากขึ้น
Henrik Christensen

2
ฉันจัดการเพื่อลดรหัสของคุณให้มากที่สุด ฉันกินประมาณ 80 ไบต์ ไม่มาก แต่ก็เล็กกว่า นี่คือรหัส: pastebin.com/fkPW0D92 ฉันได้แทนที่ตัวเลขทั้งหมดที่ทำซ้ำมากกว่า 3 ครั้งและยังคงลบจำนวนมากออกจากforวงของคุณ
Ismael Miguel

ลืมพูดถึง: มันใช้งานได้เฉพาะบนคอนโซล Firefox / Firebug นี่ใช้สัญลักษณ์ลูกศรขนาดใหญ่ ES6 ใหม่เพื่อสร้างฟังก์ชั่น คุณสามารถแทนที่w=>ด้วยfunction(w)และมันจะทำงานสำหรับทุกเบราว์เซอร์
Ismael Miguel

6

Python 2, 5254 ไบต์

วิธีการแก้ปัญหานี้แยกคำที่ดีออกเป็นสองส่วน การค้นหาจะตรวจสอบอักขระ 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 ไม่แน่ใจครั้งแรกที่ฉันใช้มัน
bacchusbeale

คุณสามารถทำให้สั้นลงได้เล็กน้อยโดยใช้varและไม่แนะนำตัวแปรเว้นแต่จำเป็น
lesderid

3

Word VBA ขนาด 25 ไบต์

ฟังก์ชั่นหน้าต่างแบบไม่ระบุชื่อ VBE ทันทีที่รับอินพุตเป็นการเลือกปัจจุบันและส่งออกถ้าเป็นคำว่าบูลีนไปยังหน้าต่าง VBE ทันที

?CheckSpelling(Selection)

ทดสอบฟังก์ชั่น

ใช้ฟังก์ชั่นด้านล่างเพื่อทดสอบฟังก์ชั่นด้านบนกับ testcase ฟังก์ชันล้มเหลว 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 ไบต์:

ใช้ regex จาก@ Sp3000 คำตอบ :

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

สิ่งนี้จะสร้างฟังก์ชั่นที่ไม่ระบุชื่อ ()ที่จะใช้มันคุณก็ตัดไปรอบ ๆ

ตัวอย่าง:

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

นี้มีว่าอัตราเดียวกันล้มเหลว @ SP3000 และผลตอบแทนtrueหรือfalseตาม

เครดิตทั้งหมดเนื่องจาก @ Sp3000 สำหรับให้ฉันใช้ regex ของเขา


@ Sp3000 แต่ถ้าอย่างนั้นคุณจะไม่สามารถเรียกมันได้ F = function(s) { return /[^aeiou]{3}|[jqxz]/.test(s) }นี้เป็นเช่นเดียวกับ
Ismael Miguel

@ Sp3000 ฉันรู้ว่ามันใช้งานได้ แต่คุณต้องใช้ไบต์มากกว่านี้เพื่อใช้งาน
Ismael Miguel

@ Sp3000 DANG มัน! ก้าวหนึ่งจากการทำให้สั้นลง: / ขอบคุณสำหรับเคล็ดลับ ฉันได้ทำการปรับปรุงแล้ว
Ismael Miguel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.