avatar
这道面试题要是ONSITE# JobHunting - 待字闺中
c*a
1
最少要20分钟才能写出最优(时间和空间复杂度)并且无虫的算法来?
=================
Given a string s, partition s such that every substring of the partition is
a palindrome.
Retur n all possible palindrome partitioning of s.
For example, given s = "aab", Retur n
[
[ " aa" , " b" ],
[ " a" , " a" , " b" ]
]
avatar
G*O
2
20 分钟不是很正常吗?
看到回文字符串的题目,基本就是dp套路,先建立p[i][j] 表示字符串 i 到 j是不是
回文 (有个很简单的算法)
然后根据题目要求在写个转移方程式就好了。。。。

is

【在 c*******a 的大作中提到】
: 最少要20分钟才能写出最优(时间和空间复杂度)并且无虫的算法来?
: =================
: Given a string s, partition s such that every substring of the partition is
: a palindrome.
: Retur n all possible palindrome partitioning of s.
: For example, given s = "aab", Retur n
: [
: [ " aa" , " b" ],
: [ " a" , " a" , " b" ]
: ]

avatar
s*x
3
这题就暴力扫一遍就行了啊。因为要打印所有结果。
Followup 那个才需要dp.
avatar
o*r
4
这道我记得好像做过,有可能是leetcode原题
avatar
c*y
5
我的想法:先找到所有子回文串,O(n^2), 记录到map(start: [ends]), 然后从start=
0 开始dfs找到所有可能性,步长可从map获得,这一步的复杂度和结果的 size应该一
样。

is

【在 c*******a 的大作中提到】
: 最少要20分钟才能写出最优(时间和空间复杂度)并且无虫的算法来?
: =================
: Given a string s, partition s such that every substring of the partition is
: a palindrome.
: Retur n all possible palindrome partitioning of s.
: For example, given s = "aab", Retur n
: [
: [ " aa" , " b" ],
: [ " a" , " a" , " b" ]
: ]

avatar
G*O
6
上代码吧,标准模板,搞出p i,j ,弄清楚回文子串有哪些,然后DFS,
public List> partition(String s) {
List> res = new ArrayList<>();
int len = s.length();
boolean[][] p = new boolean[len][len];
for (int i = 0; i < len; i++) {
p[i][i] = true;
}

for (int i = len - 1; i >= 0; i--) {
for (int j = i + 1; j < len; j++) {
if (s.charAt(j) == s.charAt(i)) {
if (p[i + 1][j - 1] || j - i < 2) {
p[i][j] = true;
}
}
}
}

dfs(s, 0, p, res, new ArrayList());
return res;
}

private void dfs(String s, int pos, boolean[][] p, List>
res, List path) {
if (pos == s.length()) {
res.add(new ArrayList(path));
return;
}
for (int i = pos; i < s.length(); i++) {
if (!p[pos][i]) continue;
path.add(s.substring(pos, i+1));
dfs(s, i+1, p, res, path);
path.remove(path.size() - 1);
}

}

start=

【在 c*******y 的大作中提到】
: 我的想法:先找到所有子回文串,O(n^2), 记录到map(start: [ends]), 然后从start=
: 0 开始dfs找到所有可能性,步长可从map获得,这一步的复杂度和结果的 size应该一
: 样。
:
: is

avatar
H*5
7
这题是Linkedin用来凑人数的耍人题,有没有面L家遇到这题还拿到offer的可以吱一声。
我目前感觉最优解是prefix树,代码400多行。
avatar
H*5
8
你这个解估计会被L的面试官鄙视,效率太低了。我有5种解法的代码,eclipse上跑长
度为1000的串这个解法比prefix 树慢N倍


: 上代码吧,标准模板,搞出p i,j ,弄清楚回文子串有哪些,然后DFS,

: public List partition(String s) {

: List res = new ArrayList();

: int len = s.length();

: boolean[][] p = new boolean[len][len];

: for (int i = 0; i

【在 G**O 的大作中提到】
: 上代码吧,标准模板,搞出p i,j ,弄清楚回文子串有哪些,然后DFS,
: public List> partition(String s) {
: List> res = new ArrayList<>();
: int len = s.length();
: boolean[][] p = new boolean[len][len];
: for (int i = 0; i < len; i++) {
: p[i][i] = true;
: }
:
: for (int i = len - 1; i >= 0; i--) {

avatar
m*5
9
dfs暴力就可以了。因为题目要所有的。

is

【在 c*******a 的大作中提到】
: 最少要20分钟才能写出最优(时间和空间复杂度)并且无虫的算法来?
: =================
: Given a string s, partition s such that every substring of the partition is
: a palindrome.
: Retur n all possible palindrome partitioning of s.
: For example, given s = "aab", Retur n
: [
: [ " aa" , " b" ],
: [ " a" , " a" , " b" ]
: ]

avatar
G*O
10
我在某家。。。。。面试写400行干嘛。。
看看LC前几名的解法
https://leetcode.com/problems/palindrome-partitioning/discuss/

【在 H**********5 的大作中提到】
: 你这个解估计会被L的面试官鄙视,效率太低了。我有5种解法的代码,eclipse上跑长
: 度为1000的串这个解法比prefix 树慢N倍
:
:
: 上代码吧,标准模板,搞出p i,j ,弄清楚回文子串有哪些,然后DFS,
:
: public List partition(String s) {
:
: List res = new ArrayList();
:
: int len = s.length();
:
: boolean[][] p = new boolean[len][len];
:
: for (int i = 0; i

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。