首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Programmimg
2017-04-26 21:34
已编辑
网易_信息系统部_高级开发工程师
关注
已关注
取消关注
阿里那个字符串匹配的题目有大佬AC么?
求代码。。。求学习。
提示
全部评论
推荐
最新
楼层
小度小度
南京大学 Java
public class Main { public static void main(String[] args) { ArrayList<Integer> inputs = new ArrayList<Integer>(); Scanner in = new Scanner(System.in); String str = in.nextLine(); String pattern=in.nextLine(); System.out.println(resolve(str, pattern)); in.close(); } // write your code here public static int resolve(String str,String pattern) { if(!pattern.contains("*")) return match(str,pattern); boolean dp[][]=new boolean[str.length()+1][pattern.length()+1]; for(int i=1;i<dp.length;i++){ for(int j=1;j<dp[0].length;j++){ dp[i][j]=false; } } dp[0][0]=true; for(int i=1;i<=str.length();i++){ for(int j=1;j<=pattern.length();j++){ char s=str.charAt(i-1); char p=pattern.charAt(j-1); if(dp[i-1][j-1]&&(s==p||p=='?'||p=='*')) dp[i][j]=true; else{ if(dp[i-1][j]&&p=='*') dp[i][j]=true; } } } /*for(int i=0;i<dp.length;i++){ for(int j=0;j<dp[0].length;j++){ System.out.print(dp[i][j]+" "); } System.out.println(); }*/ return dp[str.length()][pattern.length()]?1:0; } /** * 检验不含*的pattern * @param str * @param patter * @return */ public static int match(String str,String pattern){ if(str.length()!=pattern.length()) return 0; for(int i=0;i<str.length();i++){ if(str.charAt(i)!=pattern.charAt(i)&&pattern.charAt(i)!='?') return 0; } return 1; } }
点赞
回复
分享
发布于 2017-04-26 21:46
答案略
华中科技大学 Java
点赞
回复
分享
发布于 2017-04-26 21:56
送快递的小谍
杭州电子科技大学 Java
我也是,题目中给的测试用例都过了,提交结果只有62.5%,我不过我觉得真正变态的是选择题,基本靠瞎猜。。。
点赞
回复
分享
发布于 2017-04-26 21:40
new-coder
西南财经大学 Java
参见java.util.Pattern 里的源码吧, 应该是要用树进行深度搜索,我就知道这么多。。。。 如果用条件判断的话,情况太多了, 比如多个*和?连续混合的情况, 以及贪婪匹配与非贪婪匹配的问题
点赞
回复
分享
发布于 2017-04-29 11:26
Thare
淘天集团_技术专家
啊?可以看通过率的?不是直接提交就可以了吗?没看到哪有运行啊😂😂😂😂
点赞
回复
分享
发布于 2017-04-27 12:38
Neilhy
华南理工大学 算法工程师
public static int resolve2(String str, String reg) { char[] c1 = str.toCharArray(); char[] c2 = reg.toCharArray(); int i,j; for (i = 0,j = 0; i < c1.length && j < c2.length; ) { if (c1[i] == c2[j]) { i++; j++; } else { if (c2[j] == '?') { i++; j++; } else if (c2[j] == '*') { i++; j++; for (; i < c1.length && j < c2.length; ) { if (c1[i] == c2[j] && (i + 1 >= c1.length || c1[i + 1] != c2[j])) {//abcaabbcc a?????*c i++; j++; break; } else { i++; } } } else { i++; break; } } } //aabbccdd a*b*c??* //当匹配到最后一个dd与??后,退出外层for循环,但是匹配字符串还有一个星号没有匹配完,所以返回0 是不对的 //abcdddd abc*d? //也是一样,匹配字符串最后一个问号没有匹配完,返回0 是不对的 //abcdddd abc*d*d或者abc*d?d 返回0 是不对的 //abcdddea ab*d*ea 返回0 是不对的 if ((i == c1.length) && (j == c2.length)) { return 1; } else if (i == c1.length) { int flag=1; for (int k = j; k < c2.length; k++) { if (c2[k] != '*' && c2[k] != '?' ) { flag = (c2[k] == c1[c1.length - (c2.length - k)]) && flag == 1 ? 1 : 0;//当匹配到不是*或者?时,需要c1向前验证,若flag==1且验证正确,才继续flag=1 } } return flag; } return 0; }
点赞
回复
分享
发布于 2017-04-27 11:20
BARCA!BARCA!BARCA!
浙江农林大学 Java
public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入一个匹配字符串:"); String a = in.nextLine().trim(); System.out.println("请输入一个匹配模式字符串"); String b = in.nextLine().trim(); in.close(); char[] c1 = a.toCharArray(); char[] c2 = b.toCharArray(); // System.out.println("c1.len="+c1.length); // System.out.println("c2.len="+c2.length); int i,j; for (i = 0,j = 0; i < c1.length && j < c2.length; ) { if(c1[i] == c2[j]){ i++; j++; }else{ if(c2[j] == '?'){ i++; j++; } else if(c2[j] == '*'){ i++; j++; for(; i < c1.length && j < c2.length;){ if(c1[i] == c2[j]){ i++; j++; break; }else{ i++; } } }else{ i++; break; } } } // System.out.println("i="+i); // System.out.println("j="+j); if((i == c1.length) && (j == c2.length)){ System.out.println(1); }else{ System.out.println(0); } } 看了别人发的题目 感觉都看得懂的代码。。
点赞
回复
分享
发布于 2017-04-26 23:07
nicaiww
南京大学 Java
print 1 会不会被拉黑😂
点赞
回复
分享
发布于 2017-04-26 22:48
clxy
电子科技大学 Java
剑指offer有类似的题 我没考虑输入带空格 用的next() 结果25%
点赞
回复
分享
发布于 2017-04-26 21:46
robertssobel
武汉科技大学 Java
我用*切割后如果不包含就为0,75%
点赞
回复
分享
发布于 2017-04-26 21:43
robertssobel
武汉科技大学 Java
75%
点赞
回复
分享
发布于 2017-04-26 21:42
chensq--
华中科技大学 Java
leetcode wildcard matchiing 全部通过
点赞
回复
分享
发布于 2017-04-26 21:42
ATRuin
华南理工大学 Java
62.5%的都是偷懒用regex库的吧。。
点赞
回复
分享
发布于 2017-04-26 21:40
***_***
东南大学 Java
这么多人62.5%
点赞
回复
分享
发布于 2017-04-26 21:40
小度小度
南京大学 Java
我那里显示全部运行通过,不知道写的对不对
点赞
回复
分享
发布于 2017-04-26 21:39
等待复活
大连理工大学 Java
50%
点赞
回复
分享
发布于 2017-04-26 21:35
风的方向zlw
西安电子科技大学 Java
同求
点赞
回复
分享
发布于 2017-04-26 21:33
C32
北京工业大学 大数据开发工程师
第一道中奖哪道,怎么解?
点赞
回复
分享
发布于 2017-04-26 21:28
滔滔孟夏
河南工业大学 Java
同求,只过了25%。
点赞
回复
分享
发布于 2017-04-26 21:23
starryninght
南京大学 Java
同62.5
点赞
回复
分享
发布于 2017-04-26 21:23
暂无评论,快来抢首评~
相关推荐
05-24 15:30
门头沟学院 嵌入式软件工程师
CVTE-嵌入式面经一面面经准备(已通过)
1.自我介绍2.碰到的最难的问题3.裸机和RTOS,如何挑选,包括Linux驱动4.RTOS如何保证实时性5.FreeRTOS源码如何实现任务调度6.FreeRTOS如何实现任务切换7.怎么判断能驱动几路电机,8.如何判断主频能带动多少电机9.摄像头驱动底层,如何检测驱动错误10.如果打印日志,如何根据日志排查12C驱动11.12C驱动的时序12.为什么需要头文件13.头文件分尖括号和双引号,应该如何写引入的顺序14.就是要先写双引号再写尖括号,为什么15.float可以移位吗16.就是要float移位怎么办(可以用指针强转)17.new和malloc18.进程间、线程间通讯,管道的优势19....
CVTE一面91人在聊
查看20道真题和解析
面试经验谈
点赞
评论
收藏
分享
05-29 17:38
已编辑
武汉工程大学邮电与信息工程学院 运营
租房极限二选一!求万能的牛友!!
万能的牛友!!租房极限二选一,求求建议 我是坐标北京六环左右,女,两个房子都是当前位置性价比很高的房子,市场价没问题 房型1:基本配置:步梯三楼,朝东主卧带阳台,四居一卫租金:1300人员配置:两家男孩一家情侣劣势:房间小,而且整间屋子都是朝北,房子比较暗,只有我的房间早上有一点点阳光优势:价格好房型2:基本配置:朝南主卧带独卫,有一个大大的厨房,四居两卫租金:1900人员配置:一个男孩,一个女孩,一对情侣劣势:价格高 两间房均满足都在同一个小区,地理位置接近均是小区自供暖,民水民电,不考虑中介费
点赞
评论
收藏
分享
04-11 11:08
美团_本地商业核心_测试开发工程师(实习员工)
四非本科生一周速通美团
#美团求职进展汇总#
美团求职进展汇总
点赞
评论
收藏
分享
04-18 09:01
已编辑
字节跳动_客服平台_前端开发(准入职员工)
第一个offer,开始休息了
咦哟,从去年八月份开始长跑,两处实习转正都失败了,风雨飘摇,终于拿到offer了更新一下面试记录:秋招:多部门反复面试然后挂掉然后复活,具体问了啥已经忘了,只是被反复煎炸,直至焦香😋春招:base北京抖音hr打来电话说再次复活,准备面试,gogogo北京抖音一面:六道笔试题:1.promise顺序2.定义域问题3.flat展开4.并发请求5.岛屿数量算法(力扣)深度,广度都写6.忘记了,好像也是算法,难度中等其他问题多是框架底层设计,实习项目重难点~~~秒过😇北京抖音二面:三道笔试题:(为什么只有三道是因为第三道没做出来,卡住了)1.中等难度算法(忘记啥题了,应该是个数组的)2.认识js的继承本质(手写继承模式,深入js的面相对象开发)3.手写vue的响应式(卡在了watch,导致挂掉)---后知后觉是我的注册副作用函数写得有问题,有点紧张了其他题目多是项目拷打,项目亮点,对实习项目的贡献~~~第二天,挂,but立马复活转战深圳客服当天约面深圳客服一面:六道笔试题,由于面过太多次字节,面试官叫我直接写,不用讲,快些写完😋,具体都是些继承,深拷贝(注意对数组对象分开处理,深层次对象,循环引用),加中等难度算法题~~~秒过深圳客服二面:口诉八股大战:大概囊括网络,浏览器渲染原理,动画优化,时间循环,任务队列等等(你能想到的简单八股通通拉出来鞭尸😋)算法题:笔试题6道:1:找出数组内重复的数,arr[0]-arr[n]内的数大小为[1-n],例如[1,2,2,3,3]返回[2,3],要求o(n),且不使用任何额外空间(做到了o(n),空间方面欠佳,给面试官说进入下一题,做不来了)2:原滋原味的继承(所以继承真滴很重要)3:力扣股票购买时机难度中等其他滴也忘记了,因为拿到offer后鼠鼠一下子就落地了,脑子自动过滤掉可能会攻击鼠鼠的记忆😷~~~秒过深圳客服三面:项目大战参与战斗的人员有:成员1:表单封装及其底层原理,使用成本的优化,声明式表单成员2:公司内部库生命周期管理成员3:第三方库和内部库冲突如何源码断点调试并打补丁解决成员4:埋点的艺术成员5:线上项目捷报频传如何查出内鬼成员6:大文件分片的风流趣事成员7:设计模式对对碰成员8:我构建hooks应对经理的新增的小需求的故事可能项目回答的比较流利,笔试题3道,都很简单,相信大家应该都可以手拿把掐😇~~~过过过无hr面后续煎熬等待几天直接hr打电话发offer了,希望大家也可以拿到自己心仪的offer
法力无边年:
牛哇,你真是准备得充分,我对你没有嫉妒,都是实打实付出
,
查看19道真题和解析
点赞
评论
收藏
分享
05-24 15:25
门头沟学院 嵌入式软件工程师
是选小公司高薪,还是大公司低薪?
是选小公司高薪,还是大公司低薪?在职场选择中,很多人都会面临这样一个看似简单却颇具分量的问题:是去小公司拿更高的工资,还是选择大公司接受相对较低的薪资?这个问题背后,不仅仅是钱的多寡,更是一次关于职业发展方向、能力成长节奏与风险偏好的综合考量。本文将从多个角度分析这个问题,帮助你根据自身情况做出更加理性的选择。一、从短期收益看:高工资意味着更强的现金流小公司为了吸引优秀人才,往往会开出比大公司更高的初始薪资,这对于刚步入职场或经济压力较大的人来说,是非常现实的吸引力。高工资可以更快地改善生活质量、储蓄或投资,增强个人的经济独立性。但也需要清楚,高工资可能意味着承担更多的工作压力、更高的岗位期望...
码农索隆:
大公司略微低一点的可以接受,因为后面你可以借着大公司的这个平台,见识到更广阔的世界
面试经验谈
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
本科四年,我决定在即将毕业时转行
1.2W
2
...
极限春招小结
1.2W
字节暑期补捞
热聊中
3
...
这次是真的告别了!
1.1W
4
...
上午拍毕业照,下午拍结婚照!牛友祝福我们吧!
9878
5
...
找工作找到厌倦了,晒一下毕业照吧!
9235
6
...
第一次给了美团
8420
7
...
从后端的角度聊一聊:2728届想要搞开发的同学现在最应该干什么?
8262
8
...
极限春招一个月总结
8087
9
...
26届找不到暑期实习也不必太焦虑!!!!
6937
10
...
以为走散了,命运却又把我们安排到一起
6306
创作者周榜
更多
正在热议
更多
#
写给毕业5年后的自己
#
3900次浏览
64人参与
#
好好告别我的学生时代
#
40531次浏览
797人参与
#
华泰证券Fintech星战营
#
168101次浏览
191人参与
#
职场捅娄子大赛
#
317269次浏览
3249人参与
#
晒一下我的毕业照
#
30797次浏览
327人参与
#
华为求职进展汇总
#
4642602次浏览
28243人参与
#
如何缓解求职过程中的焦虑?
#
7117次浏览
94人参与
#
海信求职进展汇总
#
64798次浏览
356人参与
#
如果今天是你的last day,你会怎么度过?
#
22581次浏览
197人参与
#
当下环境,你会继续卷互联网,还是看其他行业机会
#
108181次浏览
781人参与
#
晒晒我司的端午福利
#
14795次浏览
99人参与
#
HR问:你期望的薪资是多少?如何回答
#
39920次浏览
524人参与
#
记录实习开销
#
24351次浏览
177人参与
#
毕业季等于分手季吗
#
12074次浏览
120人参与
#
我想象的实习vs现实的实习
#
280212次浏览
2214人参与
#
上班苦还是上学苦呢?
#
222668次浏览
1327人参与
#
视觉/交互/设计百问百答
#
43152次浏览
427人参与
#
如果中了500万,你会离职吗?
#
81930次浏览
649人参与
#
参加完秋招的机械人,还参加春招吗?
#
47768次浏览
544人参与
#
实习/项目/竞赛奖项,哪个对找工作更重要?
#
82773次浏览
1108人参与
#
工作两年想退休了
#
119822次浏览
1117人参与
牛客网
牛客企业服务