| 标题: |
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
}

