由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一个Palindrome Partition问题
相关主题
leetcode里的Palindrome partition问题Leetcode Scramble String简单解法
请教一个leetcode time complexity,Palindrome Partitioningleetcode Palindrome Partitioning
Palindrome Partitioning II 的DP做法?palindrome partitioning 2
FB Phone Interview Failed by a simple question请教道算法题
问问 leetcode 新题问道老题
请教一下palindrome partitioning用memoization的问题 Memory Limit Exceeded: Longest Palindromic Substring
leetcode online judge Longest Palindromic Substring memory limit exceeded求教leetcode上Palindrome Partitioning DFS解法的复杂度
leetcode Parlindrome Partition run time errorPalindrome Partitioning II双dp常见吗?
相关话题的讨论汇总
话题: string话题: arraylist话题: start话题: palindrome话题: return
进入JobHunting版参与讨论
1 (共1页)
H*****l
发帖数: 1257
1
原题是Leetcode上的Palindrome Partitioning
如下:
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"]
]
--------------------------------------------------------
请问,dfs函数里,这一小段是什么用处啊?特别是最后的remove..
for(int i=start+1;i<=s.length();i++){
if(isPalin(s,start,i-1)){
al.add(s.substring(start,i));
dfs(s,i,al);
al.remove(al.size()-1);
}
}
全部的代码如下:
public class Solution {
ArrayList> all=new ArrayList>();

boolean isPalin(String s, int i, int j){
while(i if(s.charAt(i)!=s.charAt(j)) return false;
i++;
j--;
}
return true;
}

void dfs(String s, int start, ArrayList al){
if(start==s.length()){
all.add(new ArrayList(al));
return;
}
for(int i=start+1;i<=s.length();i++){
if(isPalin(s,start,i-1)){
al.add(s.substring(start,i));
dfs(s,i,al);
al.remove(al.size()-1);
}
}
}

public ArrayList> partition(String s) {
all.clear();
ArrayList al=new ArrayList();
dfs(s,0,al);
return all;
}
}
c***d
发帖数: 26
2
这是递归/回溯很基本的技巧呀。
leetcode上很多题用这技巧。
建议先看看permutation/combination那几题,你就能明白了。

is

【在 H*****l 的大作中提到】
: 原题是Leetcode上的Palindrome Partitioning
: 如下:
: 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"]

r********7
发帖数: 102
3
先判断 子句是不是 palindrome
然后切掉子句 继续寻找palindrome的子句。。 进行递归
最后 清除子句 清除al arraylist, 进行下一个循环。
大概就是这样。。
可以设个断点,自己研究下

is

【在 H*****l 的大作中提到】
: 原题是Leetcode上的Palindrome Partitioning
: 如下:
: 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"]

r*c
发帖数: 167
4
发现小bug一只
al.add(s.substring(start,i));
应该是
al.add(s.substring(start,i-start));
1 (共1页)
进入JobHunting版参与讨论
相关主题
Palindrome Partitioning II双dp常见吗?问问 leetcode 新题
Palindrome Partitioning II Runtime Error请教一下palindrome partitioning用memoization的问题
有人同看Longest Palindromic Substring 这道题么?leetcode online judge Longest Palindromic Substring memory limit exceeded
星期一福利:某公司店面题leetcode Parlindrome Partition run time error
leetcode里的Palindrome partition问题Leetcode Scramble String简单解法
请教一个leetcode time complexity,Palindrome Partitioningleetcode Palindrome Partitioning
Palindrome Partitioning II 的DP做法?palindrome partitioning 2
FB Phone Interview Failed by a simple question请教道算法题
相关话题的讨论汇总
话题: string话题: arraylist话题: start话题: palindrome话题: return