public static void Main()
Console.WriteLine("SubStrings: " + count("subsequence", "sue"));
public static int count(String str, String pattern)
return countHelper(str, pattern, 0, 0);
public static int countHelper(String str, String pattern, int str_index, int pattern_index)
if (str_index <= str.Length - pattern.Length + pattern_index)
if (str[str_index] == pattern[pattern_index])
Console.WriteLine(str_index.ToString() +", "+ pattern_index.ToString() + "\n");
if (pattern_index == pattern.Length - 1)
count += countHelper(str, pattern, str_index + 1, pattern_index);
count += countHelper(str, pattern, str_index + 1, pattern_index);
count += countHelper(str, pattern, str_index + 1, pattern_index + 1);
count += countHelper(str, pattern, str_index + 1, pattern_index);