日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1、LeetCode784 字母大小写全排列

發布時間:2025/3/19 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1、LeetCode784 字母大小写全排列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LeetCode784 字母大小寫全排列

給定一個字符串S,通過將字符串S中的每個字母轉變大小寫,我們可以獲得一個新的字符串。返回所有可能得到的字符串集合。

示例:
輸入:S = “a1b2”
輸出:[“a1b2”, “a1B2”, “A1b2”, “A1B2”]

輸入:S = “3z4”
輸出:[“3z4”, “3Z4”]

輸入:S = “12345”
輸出:[“12345”]

文章目錄

  • LeetCode784 字母大小寫全排列
  • 回溯法
  • 深度優先遍歷

回溯法

class Solution {List<String> ans=new LinkedList<>();public List<String> letterCasePermutation(String s) {char[] chs=s.toCharArray(); help(chs,0);return ans;}public void help(char[] chs,int start){ans.add(new String(chs));for(int i=start;i<chs.length;i++){if(chs[i]>='0' && chs[i]<='9'){continue;}else if(chs[i]>='a' &&chs[i]<='z'){//當前小寫字母,要轉變為大寫字母,所以減32chs[i]-=32;help(chs,i+1);//回溯chs[i]+=32;}else{//當前大寫字母,要轉變為小寫字母,所以加32chs[i]+=32;help(chs,i+1);//回溯chs[i]-=32;}}} }

深度優先遍歷

class Solution {List<String> ans=new LinkedList<>();public List<String> letterCasePermutation(String s) {char[] chs=s.toCharArray(); help(chs,0,chs.length);return ans;}public void help(char[] chs,int start,int len){if(start==len){ans.add(new String(chs));return;}help(chs,start+1,len);if(Character.isLetter(chs[start])){//start位置如果是小寫則變成大寫,大寫變成小寫chs[start]^=32;help(chs,start+1,len);}} }

總結

以上是生活随笔為你收集整理的1、LeetCode784 字母大小写全排列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。