Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- завдання про рядки
- https://zero.p2p.shpp.me/tasks/45_1_slova2.html
- /* Найбільше слово в рядку
- Спитайте людину про рядок і виведіть на екран найбільше слово в рядку.
- */
- Один із варіантів рішення:
- отримаємо рядок.
- йдемо по кожному символу рядка та обробляємо такі стадії :
- 1 слово триває (або почалося) = додаємо по символу
- 2 слово скінчилося (або кінець рядку) = порівнюємо та зберігаємо макс результат, обнуляємо поточне слово
- виводимо результат
- Псевдокод:
- отримати рядок
- перебирати всі символи у рядку
- якщо поточнийСимвол == буква // тоді треба у будь якому разі додати його до поточного слова
- поточнеСлово += поточнийСимвол
- якщо поточнийСимвол !== буква а попереднійСимвол == буква (АБО поточний буква остання у рядку) // тоді слово скінчилося
- обрати макс
- обнулити поточнеСлово
- вивести макс
- // код
- let row = ' a bcd y efgh gkl';
- console.log(row);
- console.log(row.length);
- let maxWord = ''; // довгіше слово
- let word = ''; // поточне слово . Краща назва була б currentWord
- for (let i = 0; i < row.length; i++) {
- if (isLetter(row[i])) { // якщо поточний символ буква
- word += row[i]; // то додаємо його до слова у будь якому разі
- }
- if ((!isLetter(row[i]) && i > 0 && isLetter(row[i - 1])) // якщо поточний не буква та не нульовий та якщо попередній буква - значить слово щойно скінчилося
- || i === row.length - 1) { // "або якщо поточний є останнім у строці" - тоді теж значить слово щойно скінчилося
- console.log(word); // логування для відлагодження коду
- /*if (word.length > maxWord.length) { // вибір максимального - винесли у функцію для декомпозиції
- maxWord = word;
- }*/
- maxWord = getMaxWord(maxWord, word);
- word = ''; // скидання поточного слова
- }
- }
- console.log('Max is ' + maxWord);
- console.log('Max size is ' + maxWord.length)
- // return true if symb is a latin letter and false vise versa
- function isLetter(symb) {
- return ((symb.charCodeAt(0) > 64) && (symb.charCodeAt(0) < 91)) ||
- ((symb.charCodeAt(0) > 96) && (symb.charCodeAt(0) < 123))
- }
- // return word with max length
- function getMaxWord(word1, word2) {
- if (word1.length > word2.length) { // який один символ треба додати щоб з двох рівних значень поверталося перше?
- return word1;
- }
- return word2;
- }
- // that`s all, folks)
RAW Paste Data