using System.Collections.Generic;
public static void Main()
Console.WriteLine("----------------------------------------------");
Console.WriteLine("--------- Hello Frozen Mountain Team ---------");
Console.WriteLine("This solution was written by Coulter Peterson.");
Console.WriteLine("----------------------------------------------");
Console.Write("Please enter the large string of input: ");
string input = Console.ReadLine();
Console.WriteLine("Please enter the pattern length: ");
string patternLengthInput = Console.ReadLine();
int patternLength = Convert.ToInt32(patternLengthInput);
IDictionary<string, int> results = new Dictionary<string, int>();
for ( int i = 0; i < (input.Length - patternLength); i++ ) {
string currentPatternToMatch = input.Substring(i, patternLength);
if ( !results.ContainsKey(currentPatternToMatch) ) {
results.Add(currentPatternToMatch,0);
for ( int j = (i + patternLength); j < (input.Length - patternLength); j++ ) {
string innerLoopPatternToMatch = input.Substring(j, patternLength);
if ( string.Equals(currentPatternToMatch, innerLoopPatternToMatch) ) {
int patternOccurrences = results[currentPatternToMatch];
results.Remove(currentPatternToMatch);
results.Add(currentPatternToMatch,patternOccurrences);
foreach (KeyValuePair<string, int> item in results) {
Console.WriteLine("Pattern: {0}, Occurrences: {1}", item.Key, item.Value + 1);