TGViewer
Библиотека шарписта | C#, F#, .NET, ASP.NET Библиотека шарписта | C#, F#, .NET, ASP.NET @csharpproglib · 21.7K subscribers
Post #6531 3.39K
📞 Комбинации букв телефонного номера: решение за один проход рекурсии

Задача — сгенерировать все возможные буквенные комбинации по цифрам телефона, где каждая цифра соответствует набору букв.

Идея решения: для каждой цифры берём соответствующие буквы и рекурсивно добавляем их к уже сформированным комбинациям.

Алгоритм:

1. Если входная строка пуста, возвращаем пустой результат

2. Используем массив с отображением цифр на наборы букв.

3. Рекурсивно проходим по цифрам, добавляя буквы к текущей комбинации

4. Когда достигнут конец строки, сохраняем сформированную комбинацию.

Решение:
public class Solution {
private static readonly string[] map = { "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };

public IList<string> LetterCombinations(string digits) {
var result = new List<string>();
if(string.IsNullOrEmpty(digits))
return result;
Backtrack(digits, 0, new StringBuilder(), result);
return result;
}

private void Backtrack(string digits, int index, StringBuilder current, List<string> result) {
if(index == digits.Length) {
result.Add(current.ToString());
return;
}

string letters = map[digits[index] - '0'];
foreach(char c in letters) {
current.Append(c);
Backtrack(digits, index + 1, current, result);
current.Length--;
}
}
}


🔸
ML для старта в Data Science
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib

🐸Библиотека шарписта

#dotnet_challenge
  • ❤ 8
  • 🥰 2
  • 🤔 1
More from @csharpproglib
  1. Sep 28, 2026👨‍💻 Не показывайте технические ошибки пользователям Когда приложение падает с необработа…
  2. Sep 26, 2026📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #garbage_collector
  3. Sep 25, 2026🔐 NuGet: Microsoft меняет сертификат подписи С 23 сентября Microsoft использует новый сер…
  4. Sep 24, 2026🤩 Как поймать зависший .NET-сервис Приложение начинает тормозить, запросы зависают, а в л…
  5. Sep 23, 2026⚙️ yield return не бесплатный Итераторы выглядят просто, но работают иначе: IEnumerable<in…
  6. Sep 22, 2026💡 Replace, Regex или StringBuilder? Для замены текста в C# есть несколько инструментов. И…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →