Member 13684177 Ответов: 5

Как найти все подстроки данной строки


Мне просто нужна идея о том, как подойти!!!

Что я уже пробовал:

- Нет!!
Я понятия не имею!!
Не знаю, как подойти к нему и начать работу!!

Daniel Pfeffer

Как бы вы сделали это вручную?
Например, возьмем строку "abc". Как бы вы извлекли все подстроки? Теперь сделайте то же самое для "abcd". Вы видите эту закономерность?

Теперь запишите его в коде.

PIEBALDconsult

Недостаточно информации.

[no name]

Вы можете знать точное требование. Мы не. Приведите несколько примеров с ожидаемыми результатами.

Rick York

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

5 Ответов

Рейтинг:
2

CPallini

Идите рекурсивно.
Если вы не знаете рекурсии, то взгляните на Рекурсия (информатика) - Википедия[^].


PIEBALDconsult

- Нет!

CPallini

А почему бы и нет?

PIEBALDconsult

Ненужный.

Рейтинг:
1

KarstenK

Нахождение подстрок в языке Си является задачей функции strok.
В качестве разделителя следует использовать пробел " ".

Некоторые учебник по strtok На этом сайте Вы также можете изучить основы языка С.

Другой вопрос, что вы подразумеваете под "поиском подстрок". Вы можете использовать другие строки в качестве разделителя в strtok.


Рейтинг:
0

Patrice T

Цитата:
Как найти все подстроки данной строки

С помощью листа бумаги и карандаша вы получаете что-то вроде:
- imput string= "abcdef"
- подстрок: "А" "АВ" "Азбука" "Азбука" "АБВГД" "абвгде" "б" "БЦ" "кор" "право на изменения bcde" "bcdef" "с" "компакт" "кд" "cdef" "д" "де" "деф" "е" "эф" "Ф"
- найдите, какие операции дают подстроки в порядке и каковы изменения между 2 из них.
- выведите алгоритм и напишите код.

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.


Рейтинг:
0

Nish Nishant

Подход грубой силы состоял бы в использовании двух петель.

внешний контур идет от 0 до len-1,
внутренняя петля идет от внешней петли-var к len-1
извлеките подстроку, используя две переменные цикла в качестве начального и конечного индекса (используйте strncpy)

Это должно работать на любом языке, и ваш выбор, похоже, будет C.


PIEBALDconsult

внутренний цикл переходит от 0 к len-<переменная внешнего цикла> ?
или
внутренняя петля идет от <внешней переменной петли> К len-1 ?

Nish Nishant

Ой, вы правы. Я его отредактирую :-)

Рейтинг:
0

Semaphoree

static void Main(string[] args)
{
    const string word = "abcdef";
    for (int i = 0; i < word.Length; i++)
        Console.WriteLine(word.Substring(0, i + 1));
    Console.Read();
}


Nelek

это не с