avatar
组里来了一个法国妞# Fashion - 美丽时尚
k*t
1
输入两个string,输出regular expression能够match这两个string,不能简单的输出一
个".*",要尽量严格缩小范围。
String getRegex(String str1, String str2) {
...
}
我当时能想到的办法是,先找到共同的部分,然后中间插入".*"连成一个串。
面试官说:"This is not a technically optimized solution."
给出的提示是,让我想想如果前缀相同,或者后缀相同的情况, 以及输入的是一个字
符串集合。然后就没有其他提示了。后来时间也不够,就结束了。
请问,大家有没有什么好想法?
avatar
G*3
2
高高的,大概1米8左右,长得也不错~第一眼看到的就是她的longchamp,国民包啊!
avatar
d*e
3
edit distance,差异部分 用二选一, 多出来的部分用?匹配

【在 k****t 的大作中提到】
: 输入两个string,输出regular expression能够match这两个string,不能简单的输出一
: 个".*",要尽量严格缩小范围。
: String getRegex(String str1, String str2) {
: ...
: }
: 我当时能想到的办法是,先找到共同的部分,然后中间插入".*"连成一个串。
: 面试官说:"This is not a technically optimized solution."
: 给出的提示是,让我想想如果前缀相同,或者后缀相同的情况, 以及输入的是一个字
: 符串集合。然后就没有其他提示了。后来时间也不够,就结束了。
: 请问,大家有没有什么好想法?

avatar
b*s
4
almost all girls and women carry Longchamp in Paris. in all colors and all s
izes. :)

【在 G******3 的大作中提到】
: 高高的,大概1米8左右,长得也不错~第一眼看到的就是她的longchamp,国民包啊!
avatar
m*n
5
考官的意思是不是这个:
str1 = "aaab"
str2 = "ab"
reg = "a*b" 而不是 "a.*b"
str1 = "aaabbb"
str2 = "ab"
reg = "a*b*" ?

【在 k****t 的大作中提到】
: 输入两个string,输出regular expression能够match这两个string,不能简单的输出一
: 个".*",要尽量严格缩小范围。
: String getRegex(String str1, String str2) {
: ...
: }
: 我当时能想到的办法是,先找到共同的部分,然后中间插入".*"连成一个串。
: 面试官说:"This is not a technically optimized solution."
: 给出的提示是,让我想想如果前缀相同,或者后缀相同的情况, 以及输入的是一个字
: 符串集合。然后就没有其他提示了。后来时间也不够,就结束了。
: 请问,大家有没有什么好想法?

avatar
k*t
6
应该是后者,"."是需要的

【在 m*****n 的大作中提到】
: 考官的意思是不是这个:
: str1 = "aaab"
: str2 = "ab"
: reg = "a*b" 而不是 "a.*b"
: str1 = "aaabbb"
: str2 = "ab"
: reg = "a*b*" ?

avatar
m*n
7
我刚试了,前者是可以的,后者也可以。但是前者应该更优化。

【在 k****t 的大作中提到】
: 应该是后者,"."是需要的
avatar
M*7
8
这题有点变态了。估计题的细节条件还是要扣细点。
广义来说正则文法是不可学习的。
简单的说就是到底允许不允许扩大结果范围,还是必须严格地只能匹配str1&str2。
如果允许扩大结果范围,那么.*和a*对于aa和a没什么不同,最简定义到底是什么。
如果不允许扩大结果范围,那么就按ksrent这样的思路,不同的时候用个|二选一,注
意不能用.。

【在 k****t 的大作中提到】
: 输入两个string,输出regular expression能够match这两个string,不能简单的输出一
: 个".*",要尽量严格缩小范围。
: String getRegex(String str1, String str2) {
: ...
: }
: 我当时能想到的办法是,先找到共同的部分,然后中间插入".*"连成一个串。
: 面试官说:"This is not a technically optimized solution."
: 给出的提示是,让我想想如果前缀相同,或者后缀相同的情况, 以及输入的是一个字
: 符串集合。然后就没有其他提示了。后来时间也不够,就结束了。
: 请问,大家有没有什么好想法?

avatar
m*n
9
我猜想 最简定义是用的通配符最少。
比如 * 比 .* 简化, * 也比 .. 简化,.*比.....简化。
如果是这个思路,可以分两步,第一步用楼主的方法,第二部看看.* 能不能简化成 *
或者是. 。
但是还有问题没解决。
比如 "adabbccc" 和 "abbc"
reg = "a.*bbc*" 还是 ".*abbc*" ? 两个好像都可以。

【在 M**********7 的大作中提到】
: 这题有点变态了。估计题的细节条件还是要扣细点。
: 广义来说正则文法是不可学习的。
: 简单的说就是到底允许不允许扩大结果范围,还是必须严格地只能匹配str1&str2。
: 如果允许扩大结果范围,那么.*和a*对于aa和a没什么不同,最简定义到底是什么。
: 如果不允许扩大结果范围,那么就按ksrent这样的思路,不同的时候用个|二选一,注
: 意不能用.。

avatar
k*t
10
那样的话 ".*"就全部搞定了。

【在 m*****n 的大作中提到】
: 我猜想 最简定义是用的通配符最少。
: 比如 * 比 .* 简化, * 也比 .. 简化,.*比.....简化。
: 如果是这个思路,可以分两步,第一步用楼主的方法,第二部看看.* 能不能简化成 *
: 或者是. 。
: 但是还有问题没解决。
: 比如 "adabbccc" 和 "abbc"
: reg = "a.*bbc*" 还是 ".*abbc*" ? 两个好像都可以。

avatar
m*n
11
在“要尽量严格缩小范围”条件下,通配符最少。
换句话说,maximize common的字符, minimize 通配符 。

【在 k****t 的大作中提到】
: 那样的话 ".*"就全部搞定了。
avatar
s*a
12
正则表达式没法写吧,如果要严格的缩小范围那就是str1和str2两个pattern里选了。
只有这两个满足条件。我觉得要不就是他自己一知半解,被坑了,要不就是有别的条件
没注意到。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。