Size: a a a

2020 August 30

НС

Никита Сковорода... in pro.js
Татьяна
Одна, вот такая строка - abc
Нет, на выходе сколько строк должно быть для произвольной входной строки длины n?
источник

О

О’Брэмов in pro.js
Татьяна
Здравствуйте. Мне нужно написать скрипт, который на вход принимает строку,
на выход отдает массив строк со всеми возможными размещениями точек между букв.
Например:
> abc
[ ‘abc’, ‘a.bc’, ‘ab.c’, ‘a.b.c]


Я написала вот такой скрипт, но у меня выводит все возможные комбинации только с одной точкой, а нужно еще с двумя, как в примере. Как это реализовать?


function permute(str) {
 const ret = [];

 if (str.length === 1) return [str];
 if (str.length === 2) return [str, str[1] + str[0]];

 str.split('').forEach(function (chr, idx, arr) {
   let sub = [].concat(arr);
   sub.splice(idx, 1);
   permute(sub.join('')).forEach(function (perm) {
     ret.push(chr + perm);
   });
 });

 return ret;
}

console.log(permute('ab.c'));
Если с кодварс, то можно ссылку, пожалуйста?
источник

НС

Никита Сковорода... in pro.js
Для abc, судя по твоему примеру, 4.

Например, для abcdef сколько будет?
источник

Т

Татьяна in pro.js
О’Брэмов
Если с кодварс, то можно ссылку, пожалуйста?
нет, не оттуда, но могу в песочницу закинуть
источник

О

О’Брэмов in pro.js
Татьяна
нет, не оттуда, но могу в песочницу закинуть
Да без тестов скучно
источник

О

О’Брэмов in pro.js
)
источник

НС

Никита Сковорода... in pro.js
Никита Сковорода
Для abc, судя по твоему примеру, 4.

Например, для abcdef сколько будет?
Ладно, так как я пока не вижу ответа и отойду, сейчас скажу что делать дальше.

После того, как ты поймёшь, сколько их – ты можешь придумать порядок перебора и перебрать их в одном единственном цикле. Для этого тебе нужно по номеру строки уметь сказать, нужно ли в конкретном месте вставлять точку или нет.


Альтернативное решение делается через рекурсию.
Как эту задачку для строки длины n+1 свести к задаче для строки длины n?
И что будет на строке длины 1?
Так даже проще в данном случае.
источник

НС

Никита Сковорода... in pro.js
А тот скрипт, который у тебя, делает что-то не то.
Во-первых, почему во входной строке уже есть точка?
Во-вторых, зачем он переставляет буквы местами (очевидно на строке длины 2)?
источник

Т

Татьяна in pro.js
О’Брэмов
Да без тестов скучно
источник

С

Славик in pro.js
jsfiddle не хватает мобильной версии
источник

С

Славик in pro.js
как у тебя с системами счисления?
источник

Т

Татьяна in pro.js
Никита Сковорода
Для abc, судя по твоему примеру, 4.

Например, для abcdef сколько будет?
abcdef, a.bcdef, ab.cdef, abc.def, abcd.ef, abcde.f, a.b.cdef, ab.c.def, abc.d.ef, abcd.e.f, a.b.c.def, ab.c.d.ef, abc.d.e.f, a.b.c.d.ef, ab.c.d.e.f, a.b.cd.e.f.... и еще несколько будет
источник

Т

Татьяна in pro.js
Славик
как у тебя с системами счисления?
у меня в принципе все очень пока слабо, я начинающий. Вот решаю задачки, практикую
источник

С

Славик in pro.js
Татьяна
у меня в принципе все очень пока слабо, я начинающий. Вот решаю задачки, практикую
с рекурсией тоже плохо?
источник

НС

Никита Сковорода... in pro.js
Татьяна
abcdef, a.bcdef, ab.cdef, abc.def, abcd.ef, abcde.f, a.b.cdef, ab.c.def, abc.d.ef, abcd.e.f, a.b.c.def, ab.c.d.ef, abc.d.e.f, a.b.c.d.ef, ab.c.d.e.f, a.b.cd.e.f.... и еще несколько будет
Ответить на вопрос сколько их можно не выписывая все.
источник

НС

Никита Сковорода... in pro.js
Сколько их для abcdefghijk?
источник

НС

Никита Сковорода... in pro.js
Когда поймёшь это – будет легче разобраться с алгоритмом.

Что перебором, что рекурсией.
источник

С

Славик in pro.js
@TanjaTan тут комбинаторика из школьной программы для определения количества комбинаций, а потом еще не самые простые вещи из программирования для реализации, если ты начинающий, то, наверное, лучше подтянуть мат. часть, а если фронтенд, то может и другие задачи решать надо и если тебе просто решение нужно, то так и напиши, не сложно
источник

Т

Татьяна in pro.js
Славик
@TanjaTan тут комбинаторика из школьной программы для определения количества комбинаций, а потом еще не самые простые вещи из программирования для реализации, если ты начинающий, то, наверное, лучше подтянуть мат. часть, а если фронтенд, то может и другие задачи решать надо и если тебе просто решение нужно, то так и напиши, не сложно
я закончила не самые хорошие курсы, которые не научили думать  в нужном направлении, а научили решать задания по аналогии к тем, что делали на уроках - с этим и обезьяна справится. Да и сама я этим ранее не интересовалась, решила переквалифицироваться. Вот теперь и пробую учить сама и попасть на стажировку куда-то, даже бесплатно, главное практиковать.
А это задачка от разработчика, который может и возьмет на стажировку. Да, мне решение нужно, но я его хочу понять, а не просто переслать и выдать за свое.
источник

С

Славик in pro.js
Татьяна
я закончила не самые хорошие курсы, которые не научили думать  в нужном направлении, а научили решать задания по аналогии к тем, что делали на уроках - с этим и обезьяна справится. Да и сама я этим ранее не интересовалась, решила переквалифицироваться. Вот теперь и пробую учить сама и попасть на стажировку куда-то, даже бесплатно, главное практиковать.
А это задачка от разработчика, который может и возьмет на стажировку. Да, мне решение нужно, но я его хочу понять, а не просто переслать и выдать за свое.
а позиция какая?
источник