由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 上一道题
相关主题
问一个G家面试题讨论一道G的题find longest substring which contains just two unique characters.
刚做了一道题挺有意思专家们,find the longest common substring of two strings
leetcode 438的难度 是不是标错了?贡献一道G家的面试题
看看这个题目 我的算法在2楼 大牛们有没有建议改进我的算法leetcode上最搞笑的是这题
finds all repeated substrings in the string --- YAHOO interview question杯具!越改越差
请教一道题目Isomorphic Strings 的单Hashmap解法
这道硬币找零题有好的DP解法么?Word Ladder 这样写时间空间复杂度是多少? 谢谢
周末上道小题吧anagram的word ladder 时间空间复杂度是多少, bfs 解的
相关话题的讨论汇总
话题: dp话题: sub话题: int话题: string话题: sequence
进入JobHunting版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
一个String有sub string 和 sub sequence.
sub string大家都知道,sub sequence就是可以不连续的sub string。
比如abc, ab, bc 都是substring, 而ac不是。但是,ac也是sub sequence。
现在给两个String, s和t
那么在s里选取一个substring, 在t里选取一个sub sequence,使得他们相等。
问可以选取多少种组合。sub string , sub sequence 内容相等不要紧,只要有字符的
位置不同就认为是不同的string。
比如
s: "aa"
t: "aa"
ans: 5
s******n
发帖数: 3946
2
很难,面试遇到就投降了
g*********e
发帖数: 14401
3
暴力数?
p*****2
发帖数: 21240
4

暴力不行。这是到DP题。代码量很少。

【在 g*********e 的大作中提到】
: 暴力数?
l******e
发帖数: 149
5
用DP, 复杂度n3
a***g
发帖数: 234
6
n^2吧

【在 l******e 的大作中提到】
: 用DP, 复杂度n3
p*****2
发帖数: 21240
7

大牛给讲一讲。

【在 a***g 的大作中提到】
: n^2吧
z********c
发帖数: 72
8
我的想法
F[i][j]为S的substring最后取得位置是i,T的sub sequence最后取得位置是j,匹配的
方案数
1. S[i]!=T[j],则F[i][j]=0
2. S[i]==T[j],则
a. i和j分别都是各自的第一个字符,方案数1
b. i和j不是第一个字符,那么方案数F[i - 1][k] k < j
so
F[i][j] = 1 + sum (F[i - 1][1] + F[i - 1][2] .. F[i][j - 1])

S[i][j] = F[i][1] + F[i][2] + ... F[i][j]
所以
F[i][j] = 1 + S[i - 1][j - 1]
S[i][j] = S[i][j - 1] + F[i][j]
answer = sigma (F[i][j]), i <= len (s), j <= len(t)

【在 a***g 的大作中提到】
: n^2吧
p*****2
发帖数: 21240
9

你这么牛还需要多准备一个星期面F吗?

【在 z********c 的大作中提到】
: 我的想法
: F[i][j]为S的substring最后取得位置是i,T的sub sequence最后取得位置是j,匹配的
: 方案数
: 1. S[i]!=T[j],则F[i][j]=0
: 2. S[i]==T[j],则
: a. i和j分别都是各自的第一个字符,方案数1
: b. i和j不是第一个字符,那么方案数F[i - 1][k] k < j
: so
: F[i][j] = 1 + sum (F[i - 1][1] + F[i - 1][2] .. F[i][j - 1])
: 设

z********c
发帖数: 72
10
您搞笑了,刚才的G电面就跟坨屎一样。。。

【在 p*****2 的大作中提到】
:
: 你这么牛还需要多准备一个星期面F吗?

相关主题
请教一道题目讨论一道G的题find longest substring which contains just two unique characters.
这道硬币找零题有好的DP解法么?专家们,find the longest common substring of two strings
周末上道小题吧anagram的贡献一道G家的面试题
进入JobHunting版参与讨论
h**6
发帖数: 4160
11
楼主你的F面完了吗,我刚去了估计没戏。
i**********e
发帖数: 1145
12
应该不会吧,以你的实力来看的话。

【在 h**6 的大作中提到】
: 楼主你的F面完了吗,我刚去了估计没戏。
a***g
发帖数: 234
13
M[i, j]: 以s[i]为结束的substring匹配t[0-j]的方案数
case 1: s[i] == t[j]
M[i, j] = M[i-1, j-1] + M[i, j-1] + 1
case 2: s[i] != t[j]
M[i, j] = M[i, j-1]
最后结果为: M[0, n-1] + M[1, n-1] + ... + M[n-1, n-1]
对么?

【在 a***g 的大作中提到】
: n^2吧
p*****2
发帖数: 21240
14

这题对我来说太复杂了。看了你的解释才有点头绪。晚上在好好看看。

【在 z********c 的大作中提到】
: 我的想法
: F[i][j]为S的substring最后取得位置是i,T的sub sequence最后取得位置是j,匹配的
: 方案数
: 1. S[i]!=T[j],则F[i][j]=0
: 2. S[i]==T[j],则
: a. i和j分别都是各自的第一个字符,方案数1
: b. i和j不是第一个字符,那么方案数F[i - 1][k] k < j
: so
: F[i][j] = 1 + sum (F[i - 1][1] + F[i - 1][2] .. F[i][j - 1])
: 设

b***e
发帖数: 1419
15
This seems to be O(n^3). I believe there's O(n^2).

【在 z********c 的大作中提到】
: 我的想法
: F[i][j]为S的substring最后取得位置是i,T的sub sequence最后取得位置是j,匹配的
: 方案数
: 1. S[i]!=T[j],则F[i][j]=0
: 2. S[i]==T[j],则
: a. i和j分别都是各自的第一个字符,方案数1
: b. i和j不是第一个字符,那么方案数F[i - 1][k] k < j
: so
: F[i][j] = 1 + sum (F[i - 1][1] + F[i - 1][2] .. F[i][j - 1])
: 设

S******t
发帖数: 151
16
Arxor?

【在 z********c 的大作中提到】
: 您搞笑了,刚才的G电面就跟坨屎一样。。。
p*****2
发帖数: 21240
17
费了老半天劲写了一个恶心的。
int[][] dp = new int[2][];
void run()
{
Scanner in = new Scanner(System.in);
out = new PrintWriter(System.out);
char[] s = in.next().toCharArray();
char[] t = in.next().toCharArray();
int slen = s.length;
int tlen = t.length;
int mod = 1000000007;
dp[0] = new int[tlen];
dp[1] = new int[tlen];
int total = 0;
for (int j = 0; j < tlen; j++)
{
if (s[0] == t[j])
{
total++;
dp[0][j] = 1;
}
}
for (int i = 1; i < slen; i++)
{
if (s[i] == t[0])
{
dp[1][0] = 1;
total++;
}
int sum = 0;
for (int j = 1; j < tlen; j++)
{
sum += dp[0][j - 1];
sum %= mod;
if (s[i] == t[j])
{
dp[1][j] = sum + 1;
total += sum + 1;
total %= mod;
}
}
int[] tmp = dp[0];
dp[0] = dp[1];
dp[1] = tmp;
Arrays.fill(dp[1], 0);
}
out.println(total);
out.close();
}
l***i
发帖数: 1309
18
The original problem is from codeforces.com, VK cup round 2, problem A. The
constraints ask for O(n^2) solution as n=5000.
1 (共1页)
进入JobHunting版参与讨论
相关主题
word ladder 时间空间复杂度是多少, bfs 解的finds all repeated substrings in the string --- YAHOO interview question
问个google老题的最佳解法请教一道题目
问一道题(8)这道硬币找零题有好的DP解法么?
请问下那个查找包含给定字符的最短子串咋做?周末上道小题吧anagram的
问一个G家面试题讨论一道G的题find longest substring which contains just two unique characters.
刚做了一道题挺有意思专家们,find the longest common substring of two strings
leetcode 438的难度 是不是标错了?贡献一道G家的面试题
看看这个题目 我的算法在2楼 大牛们有没有建议改进我的算法leetcode上最搞笑的是这题
相关话题的讨论汇总
话题: dp话题: sub话题: int话题: string话题: sequence