Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width">
  6. <title>JS Bin</title>
  7. </head>
  8. <body>
  9.  
  10. <script id="jsbin-javascript">
  11. // ДАНО: Есть дерево, состоящее из двух типов узлов:
  12. // 1. УЗЕЛ: содержит две ветки { left: УЗЕЛ/ЛИСТ, right: УЗЕЛ/ЛИСТ }
  13. // 2. ЛИСТ: представляет собой строку
  14. // ТРЕБУЕТСЯ: Обойти дерево и вывести для каждого ЛИСТа следующую информацию:
  15. // <путь>: <3 самых длинных слова из строки>
  16.  
  17. // ПРИМЕР ДАННЫХ
  18. var tree = {
  19. left: {
  20. left: "Первое предложение из произвольной строки",
  21. right: {
  22. left: "Другое произвольное предложение",
  23. right: "Еще одно следующее предложение, но не очень длинное"
  24. }
  25. },
  26. right: {
  27. left: {
  28. left: {
  29. left: "Еще одно не очень длинное предложение",
  30. right: ""
  31. },
  32. right: {
  33. left: "",
  34. right: "Еще одно не очень длинное предложение"
  35. }
  36. },
  37. right: {
  38. left: {
  39. left: "Предложение",
  40. right: "Еще одно следующее предложение, но не очень длинное"
  41. },
  42. right: {
  43. left: "Другое произвольное предложение",
  44. right: {
  45. left: "Два слова",
  46. right: "Еще одно следующее предложение, но не очень длинное"
  47. }
  48. }
  49. }
  50. }
  51. }
  52.  
  53. // ЗДЕСЬ НАПИСАТЬ КОД. РЕЗУЛЬТАТ ВЫВЕСТИ ЧЕРЕЗ console.log
  54.  
  55. read(tree);
  56.  
  57. function dom(obj)
  58. {
  59. if (typeof(obj)=="string") return false;
  60. else return true;
  61. }
  62.  
  63. function offer(obj){
  64. if (typeof(obj)=="string") return true;
  65. else return false;
  66. }
  67.  
  68. function read(obj,path)
  69. { if (dom(obj))
  70. { if (path != '')
  71. path=path+'>>>';
  72. read(obj.left, path+'left');
  73. read(obj.right, path+'right');
  74. }
  75. else if (offer(obj))
  76. { var split11s = path + ': ' + Wordsconsole(obj,3);
  77. console.log(split11s); }
  78. return null;
  79. }
  80.  
  81. function Wordsconsole(str, wordout) {
  82. var consoleout='';
  83. str = str.replace(/[.,!?;]/g, '');
  84. var wordstrok = str.split(' ');
  85. for (var i=1;i<=wordout;i++)
  86. {if ((wordstrok.length===0)||((wordstrok.length===1)&&(wordstrok[0]==='')))
  87. continue;
  88.  
  89. var wordsdl=wordstrok.reduce(longer);
  90. consoleout = consoleout + wordsdl+'/ ';
  91.  
  92. var word = wordstrok.indexOf(wordsdl);
  93. if(word != -1) {
  94. wordstrok.splice(word, 1);
  95. }
  96. }
  97. return consoleout;
  98. }
  99. function longer(champ, contender) {
  100. return (contender.length > champ.length) ? contender: champ;
  101. }
  102. </script>
  103.  
  104.  
  105.  
  106. <script id="jsbin-source-javascript" type="text/javascript">// ДАНО: Есть дерево, состоящее из двух типов узлов:
  107. // 1. УЗЕЛ: содержит две ветки { left: УЗЕЛ/ЛИСТ, right: УЗЕЛ/ЛИСТ }
  108. // 2. ЛИСТ: представляет собой строку
  109. // ТРЕБУЕТСЯ: Обойти дерево и вывести для каждого ЛИСТа следующую информацию:
  110. // <путь>: <3 самых длинных слова из строки>
  111.  
  112. // ПРИМЕР ДАННЫХ
  113. var tree = {
  114. left: {
  115. left: "Первое предложение из произвольной строки",
  116. right: {
  117. left: "Другое произвольное предложение",
  118. right: "Еще одно следующее предложение, но не очень длинное"
  119. }
  120. },
  121. right: {
  122. left: {
  123. left: {
  124. left: "Еще одно не очень длинное предложение",
  125. right: ""
  126. },
  127. right: {
  128. left: "",
  129. right: "Еще одно не очень длинное предложение"
  130. }
  131. },
  132. right: {
  133. left: {
  134. left: "Предложение",
  135. right: "Еще одно следующее предложение, но не очень длинное"
  136. },
  137. right: {
  138. left: "Другое произвольное предложение",
  139. right: {
  140. left: "Два слова",
  141. right: "Еще одно следующее предложение, но не очень длинное"
  142. }
  143. }
  144. }
  145. }
  146. }
  147.  
  148. // ЗДЕСЬ НАПИСАТЬ КОД. РЕЗУЛЬТАТ ВЫВЕСТИ ЧЕРЕЗ console.log
  149.  
  150. read(tree);
  151.  
  152. function dom(obj)
  153. {
  154. if (typeof(obj)=="string") return false;
  155. else return true;
  156. }
  157.  
  158. function offer(obj){
  159. if (typeof(obj)=="string") return true;
  160. else return false;
  161. }
  162.  
  163. function read(obj,path)
  164. { if (dom(obj))
  165. { if (path != '')
  166. path=path+'>>>';
  167. read(obj.left, path+'left');
  168. read(obj.right, path+'right');
  169. }
  170. else if (offer(obj))
  171. { var split11s = path + ': ' + Wordsconsole(obj,3);
  172. console.log(split11s); }
  173. return null;
  174. }
  175.  
  176. function Wordsconsole(str, wordout) {
  177. var consoleout='';
  178. str = str.replace(/[.,!?;]/g, '');
  179. var wordstrok = str.split(' ');
  180. for (var i=1;i<=wordout;i++)
  181. {if ((wordstrok.length===0)||((wordstrok.length===1)&&(wordstrok[0]==='')))
  182. continue;
  183.  
  184. var wordsdl=wordstrok.reduce(longer);
  185. consoleout = consoleout + wordsdl+'/ ';
  186.  
  187. var word = wordstrok.indexOf(wordsdl);
  188. if(word != -1) {
  189. wordstrok.splice(word, 1);
  190. }
  191. }
  192. return consoleout;
  193. }
  194. function longer(champ, contender) {
  195. return (contender.length > champ.length) ? contender: champ;
  196. }</script></body>
  197. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement