Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*переробив, але поки не придумав як уникнути "роздування" масиву за рахунок роздільників які йдуть підряд. можливо дасте підказку ?)
- коли пишете яку задачу вирішуєте - то так полегшує життя!)) */
- let userString ;
- do {
- userString = prompt('Enter your string');
- } while (!userString);
- let words = [];
- words[0] = '';
- let separatorCounter = 0;
- function isLetter(symb) {
- return (((symb.charCodeAt(0) > 64) && (symb.charCodeAt(0) < 91)) || ((symb.charCodeAt(0) > 96) && (symb.charCodeAt(0) < 123))) // круто круто!
- };
- for (let i = 0; i < userString.length; i++) {
- /* if (!isLetter(userString[i])) {
- separatorCounter++;
- words[separatorCounter] = '';
- } else {
- words[separatorCounter] += userString[i];
- }
- */
- /* якщо "перевернути" вашу умову - то краще читається наче. Але проблему з не ефективним масивом
- * цим не вирішити. В кінці є рішення, обережно якщо хочете добити самостійно*/
- if (isLetter(userString[i])) {
- words[separatorCounter] += userString[i];
- } else {
- separatorCounter++;
- words[separatorCounter] = '';
- }
- }
- let biggestNum = 0;
- let maxWord;
- for (let i = 0; i < words.length; i++) {
- if (words[i].length > biggestNum) {
- biggestNum = words[i].length;
- maxWord = words[i];
- }
- }
- ;
- console.log('biggest word is ' + maxWord);
- /* Для того щоб не заповнювати роздільниками масив треба збільшувати separatorCounter тільки коли
- поточний є роздільником, а попередній був літерою , ну і не бути роздільником-початком рядка
- тоді той ваш блок коду може вигладати так:
- */
- if (isLetter(userString[i])) {
- if (words[separatorCounter] === undefined) { // є краще рішення, наче давав посилання раніше
- words[separatorCounter] = '';
- }
- words[separatorCounter] += userString[i];
- } else if (i > 0 && isLetter(userString[i - 1])) {
- separatorCounter++;
- }
Add Comment
Please, Sign In to add comment