排列出所有子串暴力递归
生活随笔
收集整理的這篇文章主要介紹了
排列出所有子串暴力递归
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
比如說給你一個字符串"dfadcdcad",讓你排列出所有的子串,比如說df就是,dc也是,如果子串中有重復(fù),可以打印出,因為題目如果說改成不能有重復(fù),改成hashset即可,子串可以有間隔,這又是一個要與不要的問題,和0-1背包很像,但是0-1背包要返回最大價值,所以在細(xì)節(jié)處理上有些區(qū)別。要與不要的問題核心都是有一個index伴隨遞歸的開始到結(jié)束,這就體現(xiàn)了暴力遞歸的思想。
public static void main(String[] args) {List<String> res = new ArrayList<>();String a = "dsfdsf";printAllSub(a,res);for (String re : res) {System.out.println(re);}}private static void printAllSub(String a, List<String> res) {char[] sChars = a.toCharArray();process(sChars,0,res,"");}private static void process(char[] cStr, int index, List<String> res, String path) {if (index==cStr.length){res.add(path);//加完以后直接返回return;}process(cStr,index+1,res,path);//不要這個字符串process(cStr,index+1,res,path+cStr[index]);//要這個字符串} 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的排列出所有子串暴力递归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 0-1背包问题暴力递归
- 下一篇: 字符串所有排列组合暴力递归