Đây thậm chí là một từ?


54

Bạn nên viết một chương trình hoặc hàm lấy chuỗi 4 ký tự làm đầu vào và xuất giá trị cho biết chuỗi đó có phải là từ tiếng Anh hay không. Bạn được phép phạm sai lầm trong 15% số mẫu thử được cung cấp.

Chi tiết đầu vào:

Đầu vào là một chuỗi gồm 4 ký tự chỉ chứa các chữ cái tiếng Anh viết thường (az).

Chi tiết đầu ra:

Nếu đầu vào một từ tiếng Anh, bạn nên xuất ra một boolean truehoặc một số nguyên 1.

Nếu đầu vào không phải là một từ tiếng Anh, bạn nên xuất ra một boolean falsehoặc một số nguyên 0.

Danh sách các từ

danh sách các từ tiếng Anh gồm 4 chữ cái (2236 từ)

danh sách các chuỗi không có 4 chữ cái (2236 chuỗi)

Danh sách không từ chứa các chuỗi chữ cái được tạo ngẫu nhiên đồng nhất với các từ thực được loại bỏ khỏi chúng.

Kiểm tra

Chương trình hoặc chức năng của bạn sẽ không mắc quá 15% lỗi trong danh sách từ đã cho cùng nhau. Điều đó có nghĩa là bạn có thể cung cấp đầu ra sai cho 670 trong số 4472 đầu vào được cung cấp.

Bạn cũng nên đăng chương trình hoặc chức năng kiểm tra để người khác có thể kiểm tra câu trả lời của bạn. Độ dài của chương trình thử nghiệm của bạn không được tính vào điểm gửi của bạn.

Sơ hở tiêu chuẩn là không được phép.

Chương trình của bạn không nên sử dụng bất kỳ nguồn bên ngoài nào, ví dụ như truy cập web hoặc đọc từ tệp.

Đây là môn đánh gôn, vì vậy chương trình hoặc chức năng ngắn nhất sẽ thắng.


4
Mảng đó phải là một phần của mã. (Tôi đoán). @randomra - quan tâm đề cập rằng bạn không thể đọc / truy cập danh sách từ từ bất cứ đâu ..
Trình tối ưu hóa

3
@BryanDevaney bạn chỉ nên mã cứng 85% danh sách
dwana

1
@TeunPronk Vâng.
Randomra

2
@Sparr Vẫn còn nhiều cách khác để giải quyết vấn đề, như trong câu hỏi này
Sp3000

5
"Có này thậm chí một từ?" Đúng. [<- 4 ký tự]
chucksmash

Câu trả lời:


62

Ruby, 29 byte

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

Hy vọng rằng tôi đã hiểu đúng - đây là lần đầu tiên tôi lập trình trong Ruby. Tôi thực sự đã làm tất cả các thử nghiệm của tôi trong Python, nhưng import requá dài đối với tôi.

Đây là một hàm ẩn danh trong một chuỗi và xuất ra true/falsetương ứng. Nó sử dụng một regex tìm kiếm một trong hai điều sau đây:

  • Ba phụ âm liên tiếp
  • Chứa một trong jqxz

Nếu một trong hai thứ này có mặt, chúng tôi sẽ phân loại đầu vào không phải là một từ.

Hàm này khớp với 2030 từ (không chính xác trên 206) và không thành công trên 1782 từ không (khớp không chính xác 454), với tổng số 660 phân loại sai. Đã thử nghiệm trên ideone .

Cảm ơn @ MartinBüttner vì sự giúp đỡ của Ruby. Martin cũng chỉ ra rằng một chương trình đầy đủ có cùng số byte:

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

Cũng cảm ơn user20150203 vì đã đơn giản hóa regex.


Ruby, 1586 1488 1349 1288 1203 byte

Để nhận tiền thưởng, đây là một chức năng có regex dài hơn nhiều:

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

Tôi muốn chỉ ra rằng regex vẫn có thể đánh bại nén, vì vậy cái này phân loại chính xác mọi trường hợp cụ thể . Bản thân regex giống như sự phân rã theo cấp số nhân - các bit đầu tiên khớp với rất nhiều từ không, sau đó mỗi bit sau càng ngày càng ít đi cho đến khi tôi bỏ cuộc và chỉ ghép phần còn lại (khoảng 200 hoặc hơn) vào cuối. Một số trong những người còn sót lại nhìn đáng ngạc nhiên như từ thực tế (chẳng hạn như chiađó một từ).

Tôi đã ném regex vào trình dọn dẹp golf regex của mình mà tôi đã viết cho một thử thách khác - nó đã đánh gôn khoảng 300 byte trước khi tôi phải thử xáo trộn mọi thứ xung quanh một cách thủ công. Vẫn còn một chút công bằng để được chơi golf.


1
user20150203 (thiếu đại diện để bình luận) đã gợi ý những điều sau trong bản chỉnh sửa mà tôi đã từ chối dựa trên cuộc thảo luận này : "Chỉnh sửa bởi người dùng mới không có tiếng tăm: ->s{!s[/[^aeiou]{3}|[jqxz]/]}chỉ có 29 byte và khớp với 2030 từ (không chính xác trong 206) và không thành công vào năm 1782 -words (khớp không chính xác 454), với tổng số 660 phân loại sai. "
Martin Ender

Điều đó thật kỳ lạ, tôi nghĩ tôi đã thử nghiệm loại bỏ từng char - hẳn đã quên mất v. Cảm ơn người dùng20150203!
Sp3000

@ Sp3000 Bạn có cho phép tôi sử dụng regex của bạn trong câu trả lời cho tôi không? Tôi sẽ ghi có cho bạn danh tiếng (nếu có thể) và tất cả các khoản tín dụng sẽ được chỉ ra trong câu trả lời.
Ismael Miguel

@IsmaelMiguel Có phải chỉ là một ngôn ngữ mà nó ngắn hơn nhiều để viết một hàm cho một trận đấu regex? Nếu vậy tôi thừa nhận tôi hơi tò mò ... (vì vậy tôi có thể ăn cắp nó cho lần sau!)
Sp3000

@ Sp3000 Nó không ngắn hơn. Nhưng tôi chỉ muốn đăng một cái gì đó. Đã được một thời gian dài kể từ khi tôi đăng bất cứ điều gì ở đây. Và nó sẽ mở rộng kiến ​​thức của tôi một chút. Vì vậy, đó là một tình huống đôi bên cùng có lợi cho tôi. Và tôi sẽ cấp cho bạn một số danh tiếng, nếu có thể, vì vậy, đó cũng là một chiến thắng cho bạn (có thể).
Ismael Miguel

13

Groovy, 77 74

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

Tôi đã viết chương trình thử nghiệm bằng Java, mà bạn có thể tìm thấy trong Gist này trên Github. Đây là đầu ra từ chương trình thử nghiệm của tôi:

Good: 2135 1708
Bad: 101 528

(Không thể kiểm tra 629 trường hợp)

Tái bút: Tôi nghĩ rằng điều này sẽ kết thúc một vấn đề golf regex cực kỳ sớm ...

Nếu câu trả lời của Sp3000 (chức năng) được chuyển đổi thành Groovy, nó sẽ kết thúc với cùng một số ký tự. Như tên hàm:

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

hoặc hàm không tên:

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

nó chỉ có thể thất bại 335 trường hợp;) nhưng vẫn khá gọn gàng
Teun Pronk

Điều này cảm thấy rất sai, nhưng nó hoạt động ^^
dwana

@TeunPronk: (2236 + 2236) * 0.15 = 670.8. vì vậy bạn có thể thất bại 670. Tôi nghĩ rằng bạn đã quên về việc phân loại các từ không chính xác. "Chương trình hoặc chức năng của bạn sẽ không mắc lỗi quá 15% trong danh sách từ đã cho cùng nhau ." (nhấn mạnh của tôi)
Neil Slater

@NeilSlater Aah, Yup, tôi chỉ xem xét những cái đúng. Xấu của tôi ^^
Teun Pronk

9

Javascript, 1626 byte:

Tôi muốn tìm một giải pháp cho mỗi nhân vật có manh mối về cái mà người ta có thể đến sau. Không ngắn, nhưng không có regex và kết quả khá tốt (từ: 101 lỗi, không từ, 228 lỗi)

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}

Đây là một triển khai hoạt động http://fiddle.jshell.net/jc73sjyn/

Nói tóm lại: Object g giữ các ký tự từ a đến z (dưới dạng các khóa) và đối với mỗi ký tự đó, có một bộ ký tự (cũng như các khóa) mà mỗi ký tự đại diện cho một ký tự có thể xuất hiện sau đó, cùng với tỷ lệ phần trăm xác suất của nó . Trường hợp không có đối tượng tồn tại, không có xác suất.

3 điểm số (4 chữ cái -> 3 đánh giá) được nhân lên và một từ có số điểm từ 60 trở lên được coi là một từ thực sự.

Ví dụ: đối với từ 'đối phó', có ba tra cứu:

g [c] [o] = 20

g [o] [p] = 5

g [p] [e] = 20

điểm = 20 * 5 * 20 = 2000, tức là hơn 60, do đó, một là hợp lệ.

(Tôi khá mới với javascript, vì vậy có thể có những cách để làm cho nó ngắn hơn mà tôi không biết.)

CHỈNH SỬA:

Hoàn toàn không liên quan đến bây giờ, nhưng tôi đã đánh giá theo cách của tôi để g đúng hơn:

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

Kết quả mới:

từ: 53 lỗi, không từ: 159 lỗi

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


Tôi nên thêm rằng các số đã được tìm thấy thông qua việc đánh giá 2236 từ đúng. Đối với mỗi chữ cái tôi chỉ cần tính phần trăm làm tròn của mỗi người kế vị. Tôi đã cân nhắc làm tương tự cho các từ sai và bằng cách nào đó trừ chúng, nhưng tôi nghĩ rằng điều đó sẽ làm cho việc đánh giá trở nên kém thông minh hơn và tận dụng lợi thế của tập hợp các từ sai hạn chế.
Henrik Christensen

2
Tôi đã quản lý để giảm mã của bạn nhiều nhất có thể. Tôi đã ăn khoảng 80 byte. Không nhiều, nhưng nó nhỏ hơn. Đây là mã: pastebin.com/fkPW0D92 . Tôi đã thay thế TẤT CẢ các số được lặp lại hơn 3 lần và vẫn xóa rất nhiều sự phình ra khỏi forvòng lặp của bạn .
Ismael Miguel

Quên đề cập đến: nó chỉ hoạt động trên bảng điều khiển Firefox / Fireorms. Điều này sử dụng ký hiệu mũi tên lớn ES6 mới để tạo chức năng. Bạn có thể thay thế w=>bằng function(w)và nó sẽ hoạt động cho mọi trình duyệt.
Ismael Miguel

6

Python 2, 5254 byte

Giải pháp này phân tách các từ tốt thành hai nửa. Trước tiên, việc tra cứu sẽ kiểm tra 2 ký tự đầu tiên để tìm đúng chuỗi, sau đó tìm kiếm 2 ký tự thứ hai trong chuỗi đó. Không nhỏ gọn lắm, nhưng viết nhanh. Phương pháp này phù hợp với mọi từ mà không mắc lỗi.

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

Ngắn hơn

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

Câu trả lời cũ

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
Liệu nó có ngôn ngữ mặc định? :)
RobAu

@RobAu Không chắc chắn, lần đầu tiên tôi sử dụng nó.
bacchusbeale 5/2/2015

Bạn có thể làm cho nó ngắn hơn một chút bằng cách sử dụng varvà không giới thiệu các biến trừ khi cần thiết.
lesderid

3

Từ VBA, 25 byte

Hàm cửa sổ ngay lập tức VBE ẩn danh lấy đầu vào làm lựa chọn hiện tại và đầu ra nếu đó là một từ dưới dạng boolean cho cửa sổ ngay lập tức VBE.

?CheckSpelling(Selection)

Chức năng kiểm tra

Hàm dưới đây được sử dụng để kiểm tra hàm trên so với các testcase. Chức năng đã thất bại 9,07 phần trăm các trường hợp (396 từ thực tế và 10 từ giả mạo)

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

2

Toán học, 33 byte

Này, ai đó phải làm điều đó!

Length[DictionaryLookup[Input[]]]

Tự giải thích.


0

Javascript ES6, 32 byte:

Sử dụng regex từ câu trả lời @ Sp3000 :

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

Điều này tạo ra một chức năng ẩn danh. Để sử dụng nó, bạn chỉ cần bọc nó xung quanh ().

Thí dụ:

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

Điều này có tỷ lệ thất bại chính xác tương tự như @ Sp3000 và trả về truehoặc falsetương ứng.

Tất cả các khoản tín dụng do @ Sp3000 đã cho tôi sử dụng regex của anh ấy.


@ Sp3000 Nhưng sau đó bạn sẽ không thể gọi nó. Điều này giống như F = function(s) { return /[^aeiou]{3}|[jqxz]/.test(s) }.
Ismael Miguel

@ Sp3000 Tôi biết nó hoạt động, nhưng bạn phải tốn nhiều byte hơn để sử dụng nó.
Ismael Miguel

@ Sp3000 ĐỪNG! Một bước để rút ngắn nó: / Cảm ơn vì tiền boa. Tôi đã cập nhật nó.
Ismael Miguel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.