Redian新闻
>
有人参加ISMB 2016的会议吗?
avatar
有人参加ISMB 2016的会议吗?# Biology - 生物学
k*t
1
网上有标准解吗?谢。
avatar
t*b
2
看精华区的485填表指南说是如果没有都不填,比如:middle name没有的话千万别填
none.
可是看485的instruction上说: "State that an item is not applicable with N/A.
If answer is none, write "None"".
到底怎么填,有人能指导一下吗?谢谢先!
avatar
y*g
3
找人一起share 宾馆的2人间,欢迎站内短信联系。
https://www.iscb.org/ismb2016
会议附近没有其他的近的宾馆,只好预订了会议推荐的宾馆,但是好贵啊!
avatar
q*x
4
递归。

【在 k***t 的大作中提到】
: 网上有标准解吗?谢。
avatar
b*M
5
啥也别写,空着。
avatar
j*0
6
你订房间了吗?我看都没有房间了啊
avatar
k*t
7
大拿给写个Sample?

【在 q****x 的大作中提到】
: 递归。
avatar
p*1
8
leave it blank
avatar
y*g
9
我给你发站内信了,我预定了房间,我们可以share。

【在 j*********0 的大作中提到】
: 你订房间了吗?我看都没有房间了啊
avatar
k*t
10
参照网上的思路,写了一个wildcard match。
做面试用还算简洁。谁给Review一下?
#include
using namespace std;
bool match(char* in, int iidx, char* ptn, int pidx)
{
if (!in || !ptn) return false;
// base case
if (!in[iidx] && !ptn[pidx]) return true;
if (!ptn[pidx]) return false;
if (!in[iidx]) {
while(ptn[pidx]) if (ptn[pidx++]!='*') return false;
return true;
}
if (ptn[pidx]=='?' || ptn[pidx]==in[iidx])
return match(in, iidx+1, ptn, pidx+1);
if (ptn[pidx]=='*') {
while (in[iidx]) {
if (match(in, iidx++, ptn, pidx+1)) return true;
}
while(ptn[++pidx]) if (ptn[pidx]!='*') return false;
return true;
}
return false;
}
int main()
{
char input[] = "regular expression";
char pattern[] = "?egu*pr??*o*";
cout << input << " => " << pattern << " : " <<
match(input, 0, pattern, 0) << endl;
cout << "ab" << " => " << "a" << " : " <<
match("ab", 0, "a", 0) << endl;
}

【在 k***t 的大作中提到】
: 网上有标准解吗?谢。
avatar
s*u
11
这个到时候有没有华人的活动
avatar
i*e
12
请问你的代码是实现 wildcard 还是 regex?
板上之前讨论过。
http://www.mitbbs.com/article_t/JobHunting/31930815.html

【在 k***t 的大作中提到】
: 参照网上的思路,写了一个wildcard match。
: 做面试用还算简洁。谁给Review一下?
: #include
: using namespace std;
: bool match(char* in, int iidx, char* ptn, int pidx)
: {
: if (!in || !ptn) return false;
: // base case
: if (!in[iidx] && !ptn[pidx]) return true;
: if (!ptn[pidx]) return false;

avatar
t*s
15
a Java version for regex match as below, let me know if there is any issue.
boolean isMatch(String s, String p) throws Exception{
if (p==null || p.length()==0)
return s==null || s.length()==0;
return isMatch(s,p,0,0);
}
boolean isMatch(String s, String p, int is, int ip) throws Exception{
if (ip>=p.length())
return s==null || is>=s.length();
if (ip==p.length()-1 || p.charAt(ip+1)!='*'){
if (p.charAt(ip)=='*')
throw new Exception("illegal");
if (is>=s.length())
return false;
if (p.charAt(ip)!=s.charAt(is) && p.charAt(ip)!='.')
return false;
return isMatch(s,p,is+1,ip+1);
}
is--;
do{
if (isMatch(s,p,++is,ip+2))
return true;
} while (is(is)));
return false;
}
avatar
i*e
16
Your code is correct.
It got "Time Limit Exceeded" due to this test case,
s = "aaaaaaaaaaaaab", p = "a*a*a*a*a*a*a*a*a*a*a*a*c"
which happens to Java solution but not C++ solution.
I have updated the test case so that a Java recursive solution could pass.
Sorry about that.

【在 t****s 的大作中提到】
: a Java version for regex match as below, let me know if there is any issue.
: boolean isMatch(String s, String p) throws Exception{
: if (p==null || p.length()==0)
: return s==null || s.length()==0;
: return isMatch(s,p,0,0);
: }
: boolean isMatch(String s, String p, int is, int ip) throws Exception{
: if (ip>=p.length())
: return s==null || is>=s.length();
: if (ip==p.length()-1 || p.charAt(ip+1)!='*'){

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