Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. const fs = require('fs')
  2.  
  3. function isSubword(word, subword) {
  4. let tmpArray = new Array(256)
  5.  
  6. for (let i=0;i<256;i++)
  7. tmpArray[i] = 0
  8.  
  9. for (let i in word)
  10. tmpArray[word.charCodeAt(i)] += 1
  11.  
  12. for (let i in subword) {
  13. tmpArray[subword.charCodeAt(i)] -= 1
  14. if (tmpArray[subword.charCodeAt(i)] < 0)
  15. return false
  16. }
  17. return true
  18. }
  19.  
  20. function main() {
  21. const totalTalkText = fs.readFileSync('words.txt').toString()
  22. const allData = []
  23. let subwordsArr = []
  24.  
  25. const allWords = totalTalkText
  26. .toLowerCase()
  27. .split(/[^a-zA-Z]+/g)
  28. .sort()
  29. .sort((a, b) => {return a.length - b.length})
  30. console.log('Sorted\n')
  31.  
  32. let wordLength = 0
  33. let minWordLength = allWords[0].length
  34.  
  35. while (wordLength != minWordLength) { //Sets the arrays that have no words
  36. allData.push([])
  37. wordLength++
  38. }
  39.  
  40. for (let i in allWords) {
  41. console.log(i/81488, '%')
  42. let subwordsObj = {
  43. word: '',
  44. subwords: []
  45. }
  46.  
  47. if (allWords[i].length == wordLength) {
  48. subwordsObj.word = allWords[i]
  49. subwordsArr.push(subwordsObj)
  50. }
  51. else {
  52. allData.push(subwordsArr)
  53. subwordsArr = []
  54. subwordsObj.word = allWords[i]
  55. subwordsArr.push(subwordsObj)
  56. wordLength++
  57. }
  58.  
  59. for (let j=0;j<=wordLength;j++) {
  60. let tmpArray = []
  61. for (let n in allWords) {
  62. if ((n != i)&&(isSubword(allWords[i], allWords[n])&&(allWords[n].length == j)))
  63. tmpArray.push(allWords[n])
  64. }
  65. subwordsObj.subwords.push(tmpArray)
  66. }
  67. }
  68.  
  69. fs.writeFileSync('subwords.json', JSON.stringify([...allData]))
  70. }
  71.  
  72. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement