-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathsolution.js
1 lines (1 loc) · 1.44 KB
/
solution.js
1
"use strict";function get_hash(e){for(var t=FNV_HVAL,n=0;n<e.length;++n)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return t>>>0}function calc_bitpos(e,t){return get_hash(e)%t}function cut_s(t){for(var n=0;(t[e]("s")||t[e]("'"))&&(t=t.substr(0,t.length-1),n++,!(n>2)););return t}function cut_some_tails(t){for(;t.length>7&&(t=t.replace(heads_re,""),t=t.replace(tails_re,""),t[e]("s")||t[e]("'")););return t}function norm_word(e){return e=cut_s(e),e=cut_some_tails(e)}function is_apos_ok(t){var n=t.split("'").length-1;return 0==n?!0:n>1?!1:!(!t[e]("'")&&!t[e]("'s"))}function init(e){bits=Uint8Array.from(e)}function test(e){e=e.toLowerCase();var t=!1;if(is_apos_ok(e)){e=norm_word(e);var n=calc_bitpos(e,Nbits),i=parseInt(n/8),s=n%8;t=!!(bits[i]>>s&1)}return t}Object.defineProperty(exports,"__esModule",{value:!0}),exports.init=init,exports.test=test;var e="endsWith",Nbits=512e3,FNV_32_PRIME=16777619,FNV_HVAL=2166136261,tails_re=/(nesse|ation|ingly|ville|ising|ally|able|like|ment|ling|iest|ship|ting|itie|ised|ical|snes|ing|sse|ism|nes|ist|ine|sly|sne|ity|man|ise|ier|ian|ite|ted|ate|ish|les|led|ful|ion|est|rie|ter|age|men|ler|ton|ily|ly|ed|ne|se|er|al|ic|le|ie|te|an|ia|st|ry|on|ou|in|en|ta|ae|ng|na|re|et|nt|la|el|ra|or|id|ty|ee|um|de|e|r|y|a|s|n|t|l|o|u)$/,heads_re=/^(trans|count|hyper|micro|super|inter|mono|unco|nonc|coun|tran|poly|micr|para|semi|unde|anti|inte|over|mis|sup|und|sub|dis|pro|ove|pre|non|ca|di|de|su|no|in|pr|re|co|un)/,bits=void 0;