Redian新闻
>
leetcode里的Palindrome partition问题
avatar
leetcode里的Palindrome partition问题# JobHunting - 待字闺中
g*n
1
网上找了一个solution是用dp的,可是这里怎么也想不明白,能指点一下吗?谢谢
partition.remove(partition.size() - 1);
为什么每次递归调用后需要把最后一个删掉呢?
谢谢
public ArrayList> partition(String s) {
ArrayList> result = new ArrayList>();
if (s == null || s.length() == 0) {
return result;
}
ArrayList partition = new ArrayList();
addPalindrome(s, 0, partition, result);
return result;
}
private void addPalindrome(String s, int start, ArrayList partition,
ArrayList> result) {
//stop condition
if (start == s.length()) {
ArrayList temp = new ArrayList(partition);
result.add(temp);
return;
}
for (int i = start + 1; i <= s.length(); i++) {
String str = s.substring(start, i);
if (isPalindrome(str)) {
partition.add(str);
addPalindrome(s, i, partition, result);
partition.remove(partition.size() - 1);
}
}
}
private boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
avatar
a*n
2
我觉得面试要考这道题让你写代码,那成心就想挂你……
avatar
l*a
3
你夸张了
这个不就是写组合吗,要求组合里每个都是palindrome
基本算brute force吧

【在 a***n 的大作中提到】
: 我觉得面试要考这道题让你写代码,那成心就想挂你……
avatar
a*n
4
不好意思,记错了,想成Longest Palindromic Substring那题了

【在 l*****a 的大作中提到】
: 你夸张了
: 这个不就是写组合吗,要求组合里每个都是palindrome
: 基本算brute force吧

avatar
b*t
5
我觉得leetcode很多题都这样啊 当然练过几遍还是能写的出来的
不过很多题如果没练过连思路都不一定有

【在 a***n 的大作中提到】
: 我觉得面试要考这道题让你写代码,那成心就想挂你……
avatar
w*y
6
回溯
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。