#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字符串 * @return string字符串vector */ //输入数字获取对应的字符串 string numberInt(int num) { switch (num) { case 2: return "abc"; case 3: return "def"; case 4: return "ghi"; case 5: return "jkl"; case 6: return "mno"; case 7: return "pqrs"; case 8: return "tuv"; case 9: return "wxyz"; } return ""; } vector<string> phoneNumber(string num) { // write code here int size = num.size(); vector<string> res; queue<string> que; for (int i = 0; i < size; i++) { //接受当前输入数字对应的字符串 string temp = numberInt(num[i] - '0'); if (i == 0) { // i=0,初始化队列 for (int j = 0; j < temp.size(); j++) { que.push(string{temp[j]}); } } else { // 进行bfs int quesize = que.size(); for (int i = 0; i < quesize; i++) { string front = que.front(); for (int j = 0; j < temp.size(); j++) { //记得进行一次回溯 front.push_back(temp[j]); que.push(front); front.pop_back(); } que.pop(); } } } //结果输入到res中即可 while (!que.empty()) { res.push_back(que.front()); que.pop(); } return res; } };