leetcode------Palindrome Partitioning

标题:

Palindrome Partitioning

通过率: 26.3%
难度: 中等

Given a string s, partition s such that every substring of the partition is a palindrome.

Return all possible palindrome partitioning of s.

For example, given s = "aab",
Return

  [

    ["aa","b"],

    ["a","a","b"]

  ]

本题还是一个递归的过程,只是再递归的时候要判断是否为回文函数,然后就是字符串的截取,具体看代码

 1 public class Solution {

 2     public ArrayList<ArrayList<String>> partition(String s) {

 3         ArrayList<ArrayList<String>> res=new ArrayList<ArrayList<String>>();

 4         ArrayList<String> tmp=new ArrayList<String>();

 5         getpa(res,tmp,s);

 6         return res;

 7     }

 8     public void getpa(ArrayList<ArrayList<String>> res,ArrayList<String> tmp,String s){

 9         if(s.length()==0||s==null){

10             res.add(new ArrayList<String>(tmp));

11         }

12         else{

13             for(int i=1;i<=s.length();i++){

14                 if(ispa(s.substring(0,i))){

15                     tmp.add(s.substring(0,i));

16                     getpa(res,tmp,s.substring(i));

17                     tmp.remove(tmp.size()-1);

18                 }

19             }

20         }

21     }

22     public boolean ispa(String s){

23         for(int i=0,j=s.length()-1;i<j;i++,j--){

24             if(s.charAt(i)!=s.charAt(j))

25                 return false;

26         }

27         return true;

28     }

29 }

 

你可能感兴趣的:(partition)