Palindrome Partitioning
Description
Given a string s. Partition s such that every substring in the partition is a palindrome.
Return all possible palindrome partitioning of s.
public class Solution {
/*
* @param s: A string
* @return: A list of lists of string
*/
public List<List<String>> partition(String s) {
// write your code here
List<List<String>> results = new ArrayList<>();
if(s == null){
return results ;
}
if(s.length() == 0){
return results ;
}
List<String> subset = new ArrayList<String>() ;
helper(s , subset , 0, results) ;
return results ;
}
public void helper(String s , List<String> subset , int start , List<List<String>> results){
if(start == s.length()){
results.add(new ArrayList<String>(subset)) ;
return ;
}
for(int i = start ; i < s.length(); i++){
String subString = s.substring(start, i+1) ;
if(!isPalindrome(subString)){
continue ;
}
subset.add(subString) ; ;
helper(s , subset , i+1 , results) ;
subset.remove(subset.size()-1) ;
}
}
public boolean isPalindrome(String s){
for(int i = 0 , j = s.length()-1 ; i < j ; i++ , j--){
if(s.charAt(i) != s.charAt(j)){
return false ;
}
}
return true ;
}
}
该博客讨论了一个编程问题,即如何找到一个字符串的所有可能的回文子序列(即正读和反读都相同的子串)。解决方案中包含一个名为`partition`的方法,它递归地检查每个子串是否为回文,并将其添加到结果列表中。`isPalindrome`辅助函数用于检查字符串是否为回文。这种方法可以生成所有可能的回文分割结果。
2886

被折叠的 条评论
为什么被折叠?



