🎁 迎长周末 & 六一,VIP通行证6个月立减$50,蓝莓立减$25 🎁
<
回复: 8
收起左侧

Startup Current 电面挂经,求讨论,觉得面试官说的不对。。

匿名用户-LPVRG  2022-2-19 07:07:10
本楼:   👍  0
0%
0%
0   👎

2022(1-3月) 码农类General 硕士 全职@current - 内推 - 技术电面  | 🙁 Negative 😐 AverageFail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
应该是挂了和面试官聊不到一起。。

Input string s, string pattern  pattern里面有一个wildcard, wildcard 可以代表一个或者多个或者0个字符    比如 cat , c*t; cat,ca*t 都 return true
解法,直接以wildcard分开看s.startsWith s.endWith 是不是就行

follow up
如果
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
的方法,还被说有edge case过不了。。
我觉得O(1)space O(n) time 不可能。。

上一篇:求助还有必要进行谷歌的team match吗
下一篇:巨硬 HE 面经 02/18
kxace 2022-2-19 07:15:37 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   1197
97%
3%
37
直接查看pattern里的所有字母组成的string是不是原string的subsequence就行 On时间
回复

使用道具 举报

t__c___ 2022-2-19 07:38:56 来自APP | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   1494
97%
3%
49
感觉条件可以是
1. 遍历原str看下一个字符可以是什么:当前游标和next游标字符
2. 遍历新str看是否匹配,同时额外记录之前有几个*

虽然主程序遍历一次,但是那个possible char的判断是可以根据*数量增加stack的,那就不是On了
扫码关注一亩三分地求职移民公众号
更多干货内容等你发现
回复

使用道具 举报

地里匿名用户
匿名用户-LPVRG  2022-2-19 14:16:08
本楼:   👍  0
0%
0%
0   👎
kxace 发表于 2022-2-18 18:15
直接查看pattern里的所有字母组成的string是不是原string的subsequence就行 On时间

不行,比如 cattt c*t 虽然有ct但是像tt部分就不match, 这是个简单的例子,可能字符中间有很多个这样的情况
回复

使用道具 举报

地里匿名用户
匿名用户-LPVRG  2022-2-19 14:20:05
本楼:   👍  0
0%
0%
0   👎
t__c___ 发表于 2022-2-18 18:38
感觉条件可以是
1. 遍历原str看下一个字符可以是什么:当前游标和next游标字符
2. 遍历新str看是否匹配,同 ...

*可以代表0,1 or more个
我想的是在 pattern中找字母,在对应s中找位置,比如  cube  c***b* 我找c, b在cube里的位置然后如果他们index不相邻,则看c***b* 中c,b中间有无星号,时间复杂度O(n^2)
感觉面试官只背了自己的答案,说别的就立刻否定,也听不懂你在说啥lol
回复

使用道具 举报

ycclll942 2024-1-23 08:19:34 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   173
94%
6%
11
你好,电面是给你发个link做题还是只需要口头回答?
回复

使用道具 举报

地里匿名用户
匿名用户-LPVRG  2024-1-23 11:07:18
本楼:   👍  0
0%
0%
0   👎
ycclll942 发表于 2024-1-22 19:19
你好,电面是给你发个link做题还是只需要口头回答?

肯定是做题啊
回复

使用道具 举报

地里匿名用户
匿名用户-GZO1X  2024-1-25 13:54:56
本楼:   👍  0
0%
0%
0   👎
匿名用户 发表于 2022-2-18 22:16
不行,比如 cattt c*t 虽然有ct但是像tt部分就不match, 这是个简单的例子,可能字符中间有很多个这样的 ...

请问cattt和c*t为什么不能返回true呢?
wildcard不是可以代表一个或者多个或者0个字符吗?
这个wildcard不能代表att?
回复

使用道具 举报

wenkesing 2024-2-29 06:10:23 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   0
0%
100%
4
虽然没有提前看到这个面经,但解法如下

s = 'ccccccaaaattttttttt', pattern = 'cc*aa*tt'
先拆分pattern => ['cc', 'aa', 'tt']
在s里找第一个出现cc的位置,不能找到就return False,
然后找这个cc之后第一个出现aa的位置,
然后找这个aa之后第一个出现tt的位置.

strings  = pattern.split('*')
start_ind = 0
for string in strings:
     find_index = s[start_ind:].find(string)
     if find_index == -1: return False
     start_ind = find_index+len(string)
在确保一下头尾
return True
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

Advertisement
>
快速回复 返回顶部 返回列表