784. Letter Case Permutation
发布日期:2021-05-09 02:50:42 浏览次数:18 分类:博客文章

本文共 1382 字,大约阅读时间需要 4 分钟。

Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string.  Return a list of all possible strings we could create.

Examples:Input: S = "a1b2"Output: ["a1b2", "a1B2", "A1b2", "A1B2"]Input: S = "3z4"Output: ["3z4", "3Z4"]Input: S = "12345"Output: ["12345"]

Note:

  • S will be a string with length between 1 and 12.
  • S will consist only of letters or digits.

 

Approach #1: BFS. [C++].

class Solution {public:    vector
letterCasePermutation(string S) { set
memo; memo.insert(S); helper(S, 0, memo); vector
ans(memo.begin(), memo.end()); return ans; } private: void helper(string S, int idx, set
& memo) { if (idx >= S.length()) return; vector
temp(memo.begin(), memo.end()); //cout << idx << endl; for (string s : temp) { if (isalpha(s[idx])) { char c; if (isupper(s[idx])) c = tolower(s[idx]); else c = toupper(s[idx]); //cout << c << endl; string temp = s; temp[idx] = c; if (!memo.count(temp)) memo.insert(temp); //helper(S, idx+1, memo); } } helper(S, idx+1, memo); }};

������

 

上一篇:980. Unique Paths III
下一篇:691. Stickers to Spell Word

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月06日 22时24分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章