C学习_做题+感受-1.25

一. 有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

我开始做错了,只是简单的把各种括号计数,有左括号就++,有右括号就--,这样最后为0,说明配对成功。

这题还要求括号的配对要按顺序来,就是左括号对应的右括号要先配对,才能出现其它括号(花括号,中括号)的右括号。

增益点:栈空间的使用

有序,要按顺序排列,左括号先有,右括号后有,最右边的左括号要和最左边的右括号配对

栈空间是可以先进后出,后进先出的:这就模拟了最右边的左括号在栈顶 ,只要最左边的右括号来配对成功,则弹出。

最后查看栈空间是否还有剩余的括号,有就没配对好,没有就配对好了。

对于要求顺序的思路可以想想栈的后进先出。

(思路是这么个思路,但对于C语言的解法,栈空间和开辟一个动态数组是一回事,你还是要看倒数第二个数是不是和新进的右括号配对,对于其它语言应该不一样)

二. 长度为 K 的重复字符子串

https://www.nowcoder.com/practice/4fe306a84f084c249e4afad5edf889cc?tpId=196&tqId=37187&ru=/exam/oj

个人思路:先把字符串前K个数据保存在一个数组里,再判断这个数组是否有重复字符。并不断右移,遍历所有值。

增益点:滑动窗口

把这个K长度想象为一个滑动窗口,将原始的长字符串,分解为一个个遍历后的小字符串解决。

三. 最长重复子串

https://www.nowcoder.com/practice/4fe306a84f084c249e4afad5edf889cc?tpId=196&tqId=37187&ru=/exam/oj

这题想了挺久的,好在完成了(因为没有C的标准答案)。最后和滑动窗口类似,不断缩小窗口大小,遍历所有数组。

增益点:可变动大小的滑动窗口

1)先考虑窗口为最大的情况,原字符串的一半长度

2)滑动窗口减1,再跑一遍。以此类推,直到窗口大小为1.

3)再将起始位置,定位到原始数据的第二个位置,滑动窗口变为(原字符串-1)一半的长度。一次类推,遍历所有字符。

个人感受

如果仅仅是为了获得一份工作,类似的这种oj题(似乎)满足相应的笔试要求(做了机考,也是类似这种题目),那确实是跳一跳能够到的高度。

但是这些题做起来,思考需要时间,真的比不过那些天才。我是切切实实地见过天才,不用高考,靠竞赛就进名校的人,我也曾和他们一起上过课,很多人,不止几个人。有的题目,我一点思路都没有,即使是练过一些题目,换了另一种题型,我就一筹莫展;那些人思考,他们也需要思考时间,但是他们可以做的出来。其中有的人就是搞计算机的,几乎全是童子功,这让我直到大学毕业前,也就是去年,都持有一种观点:有这种天才和他们童子功的存在,我又何必挤入计算机这条路上?

现在嘛,天才就做天才的事,他们去研究算法,研究卫星;我嘛,尽量在放弃前能让学校学习的理论知识能落实,能被应用。说实话,编程语言还是挺有魅力的,和吉他,诗歌差不多,就是偏数学了,我讨厌数学。

在这个做题网站上看到人发帖,说通信工程能干嘛,下面一条评论说"matlab秋招啥用没有",哈哈,确实,哪家公司没事推动最底层的科技进步呢?也只有研究所和大学会做了。多感受感受,找到热爱的研究目标,读博去了(可能性很低)。

相关推荐
R&ain几秒前
文件指针和普通指针的区别
c语言·指针
迎風吹頭髮3 分钟前
UNIX下C语言编程与实践48-UNIX 信号量:概念、PV 操作与进程同步互斥
服务器·c语言·unix
骑士雄师3 分钟前
Java 泛型中级面试题及答案
java·开发语言·面试
biter down1 小时前
C 语言11:输入方法全解析
c语言·开发语言
爱倒腾的老唐1 小时前
01、如何学习单片机
单片机·嵌入式硬件·学习
于小汐在咯7 小时前
词根学习笔记 | Agri系列
笔记·学习
霜绛7 小时前
Unity:Json笔记——Json文件格式、JsonUtlity序列化和反序列化
学习·unity·json·游戏引擎
执尺量北斗8 小时前
[特殊字符] 基于 Qt + OpenGL 实现的入门级打砖块游戏
开发语言·qt·游戏
夏子曦8 小时前
C#内存管理深度解析:从栈堆原理到高性能编程实践
开发语言·c#
我命由我123459 小时前
Excel - Excel 列出一列中所有不重复数据
经验分享·学习·职场和发展·word·powerpoint·excel·职场发展