public static IDictionary <char, int> Solve(AlphameticsEquation equation) { _equation = equation; var letterCount = LetterCountCombinations(equation).FirstOrDefault(IsSolution) ?? throw new ArgumentException(); return(SolutionForLetterCount(letterCount)); }
public static IDictionary <char, int> Solve(AlphameticsEquation vobjEquation) { mobjEquation = vobjEquation; int[] intLetterCount = LetterCountCombinations(vobjEquation).FirstOrDefault(IsSolution); if (intLetterCount == null) { throw new ArgumentException(); } return(SolutionForLetterCount(intLetterCount)); }
private static IEnumerable <int[]> LetterCountCombinations(AlphameticsEquation equation) => Enumerable.Range(0, 10) .ToArray() .Permutations(equation.LettersWithCount.Count);