[leetcode] 784. Letter Case Permutation

网友投稿 252 2022-08-27

[leetcode] 784. Letter Case Permutation

Description

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.

分析

题目的意思是:给你一个字符串S,返回这个字符串的所有变换,其中每个字符可以是大写,小写。

深度优先搜索问题。‘A’ = 65, ‘B’ = 66, 和 ‘a’ = 97, ‘b’ = 98, 小写字母的ASCII码比大写字母多32,刚好是(1 << 5)即32,那么我们只要变换第五位上的1,就可以实现大小写的交替了。

代码

class Solution {public: vector letterCasePermutation(string S) { vector res; solve(res,S,0); return res; } void solve(vector& res,string& S,int start){ if(start==S.size()){ res.push_back(S); return; } solve(res,S,start+1); if(S[start]>'9'){ S[start]^=32; solve(res,S,start+1); } }};

参考文献

​​[LeetCode] Letter Case Permutation 字母大小写全排列​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:全明星迎来新面孔,莫兰特、维金斯第一次入选就当首发!(维金斯入选全明星了吗)
下一篇:python Matplotlib同时画柱状图与折线图
相关文章

 发表评论

暂时没有评论,来抢沙发吧~