题目描述
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。
思路
从 s 的头部开始暴力穷举,如果发现 s[0…i] 是一个回文子串,那么我们就可以把 s 切分为 s[0…i] 和 s[i+1…], 然后我们去尝试把 s[i+1…] 去暴力切分成多个回文子串即可。
代码如下
public class SplitPalindromeString {
ListListString>> res = new ArrayList>();
LinkedListString> list = new LinkedList>();
public ListListString>> partition(String s) {
dfs(s, 0);
return res;
}
public void dfs(String s, int start){
// 结束条件
if(start == s.length()){
res.add(new ArrayList>(list));
return;
}
for(int i = start;i s.length();i++){
if(isValid(s, start, i)){
list.add(s.substring(start, i + 1));
}else{
continue;
}
dfs(s, i + 1);
list.removeLast();
}
}
服务器托管网public boolean isValid(String s, int start, int e服务器托管网nd){
while(start end && s.charAt(start) == s.charAt(end)){
start++;
end--;
}
return start >= end;
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
1. Python中常用的库有哪些,作用分别是什么 requests:requests是一个用于发送 HTTP 请求的库,它提供了简单而优雅的 API,可以轻松地发送 GET、POST、PUT、DELETE 等请求,并处理响应数据。它支持会话管理、身份验证、文…