leetcode131.分割回文串
给你一个字符串 s
,请你将 s
分割成一些子串,使每个子串都是 回文串 。返回 s
所有可能的分割方案。
示例 1:
输入:s = "aab" 输出:[["a","a","b"],["aa","b"]]
示例 2:
输入:s = "a" 输出:[["a"]]
思路:主要就是确定一个串的start和end
List<List<String>> list=new ArrayList<>();
List<String> ret=new ArrayList<>();
public List<List<String>> partition(String s) {
backTracking(s,0);
return list;
}
public void backTracking(String s,int start){
if(start>=s.length()){
list.add(new ArrayList<>(ret));
return;
}
for(int i=start;i<s.length();i++){
if(isHuiWen(start,i,s)){
ret.add(s.substring(start,i+1));
backTracking(s,i+1);
ret.remove(ret.size()-1);
}
}
}
// 判断是否是回文串
public boolean isHuiWen(int start,int end,String s){
while(start<=end){
if(s.charAt(start)!=s.charAt(end))
return false;
start++;
end--;
}
return true;
}
原文地址:https://blog.csdn.net/m0_64995001/article/details/145148047
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!