【题目2】给定一个字符串数组,从中找出第一个只出现一次的字母

    这个题目看似简单,把代码调试通过花了我两个多小时

唉,越做对自己越没信心,看来要再把数据结构复习一遍了。

    解题思路:利用哈希表,因为字符最多只有255个,可以

利用这个特性建立一个哈希表,将字符串中所有的字符映射到

这个哈希表中,记录出现的每个字符的个数。最后查找哈希表

获取第一个出现字数为一的字母。

  这里有一个问题,我们如何知道我们取到的是字符串中的第一

个出现一次的字母,这里要求我们在映射字符的时候,顺便将其

第一次出现的位置记录到哈希表结构中去。位置最靠前的当然就

是第一个只出现一次的字母了。

 

  在实现过程中,可以自己实现一个定制的哈希表结构,但是

我嫌太麻烦了,就利用了一些个小技巧,利用一个Set来记录

出现了那些字符,在定义一个结构体记录每个字符出现的次数和

首次在字符串中出现的位置。

  

源代码:(在VC6下通过编译,正确执行)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值