Skip to content

Conversation

@Tyhyqo
Copy link

@Tyhyqo Tyhyqo commented Jun 1, 2024

Создадим count - результат, tmp - копию s
pattern_lengtр - длину pattern.
Пока tmp содержит pattern, увеличиваем счетчик на 1, а tmp сдвигаем вперед на shift (ставим указатель
после первого вхождения подстроки), уменьшаем
размер tmp на shift.

Создадим count - результат, tmp - копию s
pattern_lengtр - длину pattern.
Пока tmp содержит pattern, увеличиваем счетчик на 1,
а tmp сдвигаем вперед на shift (ставим указатель
после первого вхождения подстроки), уменьшаем
размер tmp на shift.

size_t stringCountSubstring(TString s, TString pattern) {
size_t count = 0;
TString tmp = stringInitWithCharArr(s.data);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кажется лучше обойтись без лишнего копирования всей строки, есть функция stringCopy(), которая выполняет не глубокое копирование, а просто получает второй указатель на уже существующую строку. Текущая реализация так вообще содержит утечку памяти((

Comment on lines +487 to +488
TString s1 = stringInitWithCharArr("abc1234dgdgdsfsfdfdsfsfsd1234sfdjg");
TString s2 = stringInitWithCharArr("123");
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавьте ещё пару тестовых случаев, возможно с вхождениями в начале/конце строки, без вхождений вообще или наоборот только из одинаковых букв.
Например: stringCountSubstring('aaaaa', 'a')

return number + decimal;
}

size_t stringCountSubstring(TString s, TString pattern) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавьте заголовок функции в начале файла, где объявляются все импорты

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants