Получена строка, содержащая цифры от 2-9 включительно.
Нужно вернуть все возможные комбинации букв, которые могло бы представлять число. Ответ можно вернуть в любом порядке.
Преобразование цифр в буквы (точно так же, как на кнопках телефона) приведено ниже. Обратите внимание, что 1 не сопоставляется ни с какими буквами.
Входные данные: digits = “23”
Результат: [“ad”,”ae”,”af”,”bd”,”be”,”bf”,”cd”,”ce”,”cf”]
Входные данные: digits = “”
Результат: []
Входные данные: digits = “2”
Результат: [“a”,”b”,”c”]
class Solution {
public:
vector<string> letterCombinations(string digits) {
if(digits.empty()){
return {};
}
vector<string> pad = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
vector<string> output;
output.push_back("");
for(auto key : digits){
vector<string> temp;
for(auto candidate : pad[key-'0']){
for(auto c : output){
temp.push_back(c + candidate);
}
}
output.clear();
output = temp;
}
return output;
}
};