简单c语言练习题(第四期)

分享一些练习题和大致解题思路(C语言)

分享的题基本都是各大网站,或者丛书中出的比较优秀的题,或者是博主看到的写过的一些题,由于博主也是一位刚入门的萌新,水平有限,现在可能不会出什么非常难的题,但是对于初入c语言的学员应该会有些帮助,好的现在开始(答案会放在另一个分组中,答案会是博主自己手打的,可能会有错误或者更优解也非常欢迎探讨交流一番)


题目

  1. 在字符串中找出第一个只出现一次的字符,如输入"abaccdeff",则输出’b’,要求时间复杂度为o(n);

  2. 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符,测试样例:"qywyer23tdd",返回: y

  3. 一个整形数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字,例如数组为{1,3,5,7,1,3,5,9} 找出7和9


解题思路

  1. 找到第一个只出现一次的字符,char类型大小是0~255,所以开辟一个数组arr,数组的大小就是256,a的ASCII码是97,那字符串中每出现一次a就让数组arr[97]++;如果是b就让arr[98]++,以此类推,当字符串全部放进去之后,再去数组和字符串中对比找到第一次只出现一次的字符

  2. 和第一题类似,就是条件相反,在数组和字符串中对比找出第一次重复出现的字符

  3. 本题比较复杂,看图
    在这里插入图片描述


分享一下

如果对题目感兴趣可以看看前几期的题
第三期链接https://blog.csdn.net/Heart_of_collaps/article/details/100168899
第二期链接https://blog.csdn.net/Heart_of_collaps/article/details/100144257
每一期都会在其他分组中放上答案,如果写不出来,可以参考答案对照着来写

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值