怎样看待LeetCode 28Implement strStr()( 二 )
运行的结果,提交结果那一栏的输入太长就不放出来了。class Solution {public: int strStr(string haystack, string needle) { if(needle == "") return 0; if(haystack.size() \u0026lt; needle.size()) return -1; for(string::size_type i = 0;i \u0026lt; haystack.size() - needle.size()+1;++i){ bool flag = true; for(string::size_type j = 0;j \u0026lt; needle != \u0026#39;\\0\u0026#39;;++j)//这一行的边界出错了; if(haystack != needle) {flag = false;break;} if(flag) return i; } return -1; }};
这个估计是想让你自己实现一个而不是调用现成的,这样的话就能感受到出题人满满的恶意了,,,,
先说一声老夫用的C++,其它语言并不清楚是不是也这样。
它的用例里面有一个非常诡异,母串是上百个a,子串除了最后一个字母是b之外和母串完全一样。讲道理你这个a再多也并不影响程序运行啊,应该和“aa”,"ab"的情况没区别啊。然而实际情况却有点魔性,我写的程序aaaaaaa,aaaaaab和aaaaaaaaaaaaa,aaaaaaaaaaaab都正常运行,但a的长度再继续加长就不行了,运行结果就都成0了(应该是-1)。
【怎样看待LeetCode 28Implement strStr()】 到最后我都没找出来bug出在什么地方,最后实在怂了,就调用了标准库直接过了,,,,,
■网友
排序也能通过一行来实现,那现在是否还有必要去学习排序算法那?然而快速排序,堆排序等,一直是面试的热门话题。回到这个问题,这样的AC只能算是你搬了别人的算法来AC。刷Leetcode是为了面试,当你的面试官问你这个问题,你说,我能一行把它敲出来,但是他要的不是这一行代码,而是背后的原理,知其然还要知其所以然。当然,工作中如果有这样的需求,能用这一行代码来解决,肯定是很好的,但这并不意味着了解背后的原理是没有意义的。当研究一个开源的东西时,看源码会有很大的作用,了解背后的原理,才能更好的应用。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义