递归 | #牛名生成器#

牛名生成器

https://www.nowcoder.com/practice/f82fe408de8f4fbdbc30162d6b3e65bb

const auto io_sync_off = []() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
    return nullptr;
}
();


class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param digits string字符串
     * @return string字符串vector
     */
    vector<string> letterCombinations(string digits) {
        int n = digits.size();
        if (!n) return {};
        // write code here
        unordered_map<char, string>mp {
            {'2', "abc"},
            {'3', "def"}, {'4', "ghi"}, {'5', "jkl"}, {'6', "mno"}, {'7', "pqrs"}, {'8', "tuv"}, {'9', "wxyz"}
        };
        string buf;
        dfs(buf, digits, 0, mp);
        return ans;
    }

    vector<string>   ans;

    void dfs(string& buf, string& s, int i, unordered_map<char, string> mp) {
        if (i == s.size()) {
            ans.push_back(buf);
            return ;
        }
        auto& str = mp[s[i]];
        for (char f : str) {
            buf.push_back(f);
            dfs(buf, s, i + 1, mp);
            buf.pop_back();
        }
    }

};

#ifdef debug


int main() {
    cout << __FILE__ << endl;
    Solution k;

    println(k.letterCombinations("34"));
    return 0;
}


#endif

全部评论

相关推荐

不愿透露姓名的神秘牛友
05-28 12:15
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
投递长鑫存储等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务