задача состоит в том, чтобы с помощью рекурсии перебрать всевозможные комбинации для массива символов в верхнем и нижнем регистрах. На вход подается массив с символами в нижем регистре. В пример привел массив символов char[] ch = new char[3] { 'c', 'a', 't' };
При прогоне через тесты на сайте курса, не найдена комбинация ('C','a','T').
public static List<string> AlternateCharCases(string lowercaseWord)
{
var result = new List<string>();
AlternateCharCases(lowercaseWord.ToCharArray(), 0, result);
var distinctRes = result.Distinct().ToList();
return distinctRes;
}
static void AlternateCharCases(char[] word, int startIndex, List<string> result)
{
var tmpVarriable = word.ToArray();
if (word.Length == startIndex)
{
result.Sort();
return;
}
for (int i = startIndex; i < word.Length; i++)
{
result.Add(new string(word));
word[i] = char.ToUpper(word[i]);
result.Add(new string(word));
}
AlternateCharCases(tmpVarriable, startIndex + 1, result);
}