分享一些练习题和大致解题思路(C语言)
分享的题基本都是各大网站,或者丛书中出的比较优秀的题,或者是博主看到的写过的一些题,由于博主也是一位刚入门的萌新,水平有限,现在可能不会出什么非常难的题,但是对于初入c语言的学员应该会有些帮助,好的现在开始(答案会放在另一个分组中,答案会是博主自己手打的,可能会有错误或者更优解也非常欢迎探讨交流一番)
题目
-
在字符串中找出第一个只出现一次的字符,如输入
"abaccdeff"
,则输出’b’,要求时间复杂度为o(n); -
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符,测试样例:
"qywyer23tdd"
,返回: y -
一个整形数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字,例如数组为
{1,3,5,7,1,3,5,9}
找出7和9
解题思路
-
找到第一个只出现一次的字符,char类型大小是0~255,所以开辟一个数组arr,数组的大小就是256,a的ASCII码是97,那字符串中每出现一次a就让数组arr[97]++;如果是b就让arr[98]++,以此类推,当字符串全部放进去之后,再去数组和字符串中对比找到第一次只出现一次的字符
-
和第一题类似,就是条件相反,在数组和字符串中对比找出第一次重复出现的字符
-
本题比较复杂,看图
分享一下
如果对题目感兴趣可以看看前几期的题
第三期链接https://blog.csdn.net/Heart_of_collaps/article/details/100168899
第二期链接https://blog.csdn.net/Heart_of_collaps/article/details/100144257
每一期都会在其他分组中放上答案,如果写不出来,可以参考答案对照着来写