Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/88: Рейтинг темы: голосов - 88, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 39

Разработать код, печатающий на консоль самую длинную общую подстроку всех переданных строк.

10.08.2019, 14:33. Показов 16428. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сам код
JavaScript
1
function lcs(a){let b=a.reduce((c,a)=>c.length<=a.length?c:a),c=b.length;for(let d=c;256>=(0<=d);d--)for(let e,f=0;f<=c-d;f++)if(e=b.substring(f,f+d),a.every(a=>~a.indexOf(e)))return e;return"/n"}3>process.argv.length?console.log(""):console.log(lcs(process.argv.slice(2)));
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.08.2019, 14:33
Ответы с готовыми решениями:

Найти самую длинную общую подстроку двух строк
Помогите пожалуйста с решением данной задачи,сам пробывал кроме библиотек и нескольких начальных строчек больше ничего не удалось(изучаю си...

Для двух строк символов найти самую длинную общую подстроку
Задание : Для двух строк символов найти самую длинную общую подстроку. Пробелы и знаки препинания игнорировать, строчные и прописные ...

Найти самую длинную общую часть двух строк
заданы две строки.Найти самую длинную их,общую часть.

6
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
10.08.2019, 14:43
Здравствуйте.
AlexejDrozdov, смысл функции напишите, пожалуйста. И желательно входные данные и результат, который должен быть.

Наверняка можно реализовать функцию попонятнее и подлиннее.

Добавлено через 1 минуту
process.argv.length
Нода?
Так и нужно было написать, что Нода.
0
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 39
10.08.2019, 14:45  [ТС]
Требуется разработать на языке JavaScript код, печатающий на консоль самую длинную общую подстроку всех переданных строк. Если самая длинная общая подстрока является пустой строкой (например, не было передано ни одной строки или строки не имеют общих для всех символов), напечатать один перевод строки (пустую строку). При существовании нескольких решений — напечатать одно решение (любое).


Задача максимально коротко написать, не обязательно понятно.

Добавлено через 41 секунду
Нужно именно короче по количеству байтов
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
10.08.2019, 14:47
AlexejDrozdov, это NodeJS или в браузере? Строки то как передавать?

a - массив строк?
0
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 39
10.08.2019, 14:52  [ТС]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function lcs(strings)
{
    let shortest = strings.reduce((a, b) => a.length <= b.length ? a : b);
    let maxlen = shortest.length;
    for (let len = maxlen; len >= 0; len--)
    {
        for (let start = 0; start <= maxlen - len; start++)
        {       
            let substr = shortest.substring(start, len);
            if (strings.every(elem => ~elem.indexOf(substr))) {return substr;}
        }
    }
    return '';
}
 
if (process.argv.length < 3)
    console.log('');
else
    console.log(lcs(process.argv.slice(2)));
Вызов
node lcs.js ZZZABXXX XXXYYYAB ABYYYZZZ
AB

Добавлено через 25 секунд
Это до укорачивания
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
10.08.2019, 15:56
AlexejDrozdov, здесь применен понятный алгоритм. В Википедии вообще страшненький алгоритм.
Можно только слегка осовременить и учесть особенности аргументов командной строки, что там разрывы по пробелам, и что там всегда массив строк.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function lcs(strings) {
    if (!strings.length) return '';
    let shortest = strings.reduce((a, b) => a.length <= b.length ? a : b),
        maxlen = shortest.length;
 
    for (let len = maxlen; len > 0; len--) {
        for (let start = 0; start <= maxlen - len; start++) {
            let substr = shortest.slice(start, len);
            if (strings.every(elem => elem.includes(substr)))
                return substr;
        }
    }
    return '';
}
 
console.log(lcs(process.argv.slice(2)));
0
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 39
10.08.2019, 17:22  [ТС]
Спасибо. А скажите, есть ли возможность ужать этот код до размера порядка 100-200 байт, при этом не обязательно он должен хорошо читаться?

Добавлено через 1 час 3 минуты
И я так понимаю, то можно написать и не в виде функции?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2019, 17:22
Помогаю со студенческими работами здесь

В строке найти самую длинную подстроку
С клавиатуры водится строка,найти самую длинную подстроку, которая повторяется больше одного раза в данной строке, найти сколько раз она...

Найти в строке самую длинную повторяющуюся подстроку
в паскаль найти в строке самую длинную повторяющую подстроку Добавлено через 11 минут Пожалуйста..очень сейчас нужно

Найти самую длинную подстроку, состоящую из одинаковых символов
В данной строке найти самую длинную подстроку, состоящую из одинаковых символов.

Найти самую длинную подстроку, состоящую из одинаковых символов
Задача 2 В данной строке найти самую длинную подстроку, состоящую из одинаковых символов. Помогите буду очень благодарна! И можно с...

заданы две строки.Найти самую длинную их,общую часть
нужна помощь: заданы две строки.Найти самую длинную их,общую часть.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru