Количество вхождении строки в массив рекурсией
Не могу понять как посчитать количество вхождении строки в массив с помощью рекурсией без linq c#. Есть строка string "abcdef" и массив char { 'a', 'e' }.
public static int GetCharsCount(string str, char[] chars)
{
if (chars[0] == str[0])
{
return 1 + GetCharsCount(str[1..], chars);
}
else
{
return GetCharsCount(str[1..], chars);
}
return GetCharsCount(str, chars);
Ответы (1 шт):
Автор решения: Nyuhnyash
→ Ссылка
Условие выхода из рекурсии нужно указывать до основной части.
public static int GetCharsCount(
string str, char[] chars,
int charsIndex = 0 // значение по умолчанию для внешних вызовов
)
{
if (charsIndex == chars.Length)
{
charsIndex = 0;
str = str[1..];
}
if (str == String.Empty) // условие выхода
return 0;
return (chars[charsIndex] == str[0]
? 1
: 0)
+ GetCharsCount(str, chars, charsIndex + 1);
}