由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 寻找子序列/子段落
相关主题
Linkedin 工资不高啊面试问题,最长翻转整数问题
Facebook interview 面经fb电面第一轮
nlogn for longest increasing subsequence新人刚刚开始认真找工作,问个简单的题(1)
请教道算法题Bloomberg面试题
大家来讨论一下c++吧问一下dynamic programming的常见问题
一朋友被Google的电面干掉了 (转载)贡献F家Onsite一题
Amazon Summer Intern Offer, 发面经被简单题给虐了。
攒人品 报BB面经问一个题,求相同元素最多的两个数组
相关话题的讨论汇总
话题: match话题: hello话题: index话题: world话题: mn
进入JobHunting版参与讨论
1 (共1页)
s*********l
发帖数: 103
1
http://fayaa.com/tiku/view/167/
问题1:
给定两个序列A和B(A,B可以是字符串,也可以是其它类型的一维数组),求B中最短的包
含A的子序列(i.e. the shortest subsequence of B which is the supersequence of
A)。这里'包含'的意思指被包含的
序列(subsequence)可以由包含序列(supersequence)删除一些位置上的元素而得到,而
且顺序必须保持一致。
比如对输入
A: 'hello world'
B: 'hello our world hello my world'
输出应为'hello my world'.
另外当A固定,而B变化巨多或者B固定而A变化居多时应如何处理以提高性能?
问题2:
给定一段文本text和一些关键字集合keywords,求文本text中包含所有keywords的最短
子段落。这里
关键字出现的顺序不重要。比如对输入
text: 'hello our world hello my world'
pattern: {'hello','world'}
a********a
发帖数: 219
2
给自己积点福。
int match[100][100];
string sub(string a, string b) {
int oo = 10000000001;
int mn = oo;
int pos = -1;
memset(match, oo, sizeof(match));
memset(match[0], 0, sizeof(match[0]));
for(int i = 1; i <= b.size(); i ++)
for(int k = 1; k <= a.size(); k ++) {
match[k][i] = match[k - ((b[i - 1] == a[k - 1]) ? 1 : 0)][i - 1]
+ 1;
pos = ((k == a.size() && match[k][i] < mn) ? i : pos);
mn = (pos == i) ? match[k][i] : mn;
}
return (mn == o

【在 s*********l 的大作中提到】
: http://fayaa.com/tiku/view/167/
: 问题1:
: 给定两个序列A和B(A,B可以是字符串,也可以是其它类型的一维数组),求B中最短的包
: 含A的子序列(i.e. the shortest subsequence of B which is the supersequence of
: A)。这里'包含'的意思指被包含的
: 序列(subsequence)可以由包含序列(supersequence)删除一些位置上的元素而得到,而
: 且顺序必须保持一致。
: 比如对输入
: A: 'hello world'
: B: 'hello our world hello my world'

x***y
发帖数: 633
3
1. You can use LCS, backtracking and take the one with minimum sequence in B or
using the elements in A(assume A is fixed) as key of hash table, and then
hash elements in B(assume B varies a lot) with the index as the hash value,
and try all the indice in the sequential way to find the answer.( for
example, find the first index of h, then the next possbile index of e, and
go on, find a length and corresponding lower index and upper index of the
subsequence; then starting from next index of h, re

【在 s*********l 的大作中提到】
: http://fayaa.com/tiku/view/167/
: 问题1:
: 给定两个序列A和B(A,B可以是字符串,也可以是其它类型的一维数组),求B中最短的包
: 含A的子序列(i.e. the shortest subsequence of B which is the supersequence of
: A)。这里'包含'的意思指被包含的
: 序列(subsequence)可以由包含序列(supersequence)删除一些位置上的元素而得到,而
: 且顺序必须保持一致。
: 比如对输入
: A: 'hello world'
: B: 'hello our world hello my world'

1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个题,求相同元素最多的两个数组大家来讨论一下c++吧
DP通项公式一朋友被Google的电面干掉了 (转载)
微软:求一个数列中最长单调上升子列,要求O(nlogn)时间Amazon Summer Intern Offer, 发面经
有人知道怎么证明最短公共超序列问题是NP Hard 的么?谢谢!攒人品 报BB面经
Linkedin 工资不高啊面试问题,最长翻转整数问题
Facebook interview 面经fb电面第一轮
nlogn for longest increasing subsequence新人刚刚开始认真找工作,问个简单的题(1)
请教道算法题Bloomberg面试题
相关话题的讨论汇总
话题: match话题: hello话题: index话题: world话题: mn