【Leetcode】784.字母大小写全排列
题目:给定一个字符串 s
,通过将字符串 s
中的每个字母转变大小写,我们可以获得一个新的字符串。
返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。
示例 1:
输入:s = "a1b2"
输出:["a1b2", "a1B2", "A1b2", "A1B2"]
示例 2:
输入: s = "3z4"
输出: ["3z4","3Z4"]
提示:
1 <= s.length <= 12
s
由小写英文字母、大写英文字母和数字组成
思想:依次遍历整个字符串,使用res的string切片来保存结果,根据不同情况给出不同的处理:
1.如果遍历到的是数字的话,则直接追加到res数组的每一个string元素后面。
2.如果遍历到的是字母的话,无论大小写,将当前遍历的res数组复制一份,用于保存当前字母的大小写两种情况,分别将当前字母大写和小写追加到数组后面。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | unc letterCasePermutation(s string) []string { res := []string{ "" } for v,_ := range s{ if s[v] >= 'a' &&s[v]<= 'z' || s[v] >= 'A' &&s[v] <= 'Z' { temp :=make([]string,len(res)) copy(temp,res) for i:=0;i<len(res);i++{ res[i] = res[i] + strings.ToUpper(string([]byte{s[v]})) temp[i] = temp[i] + strings.ToLower(string([]byte{s[v]})) } res = append(res,temp...) } else { for i:=0;i<len(res);i++{ res[i] = res[i] + string([]byte{s[v]}) } } } return res } |
题目来源:https://leetcode-cn.com/problems/letter-case-permutation/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)