码迷,mamicode.com
首页 > 其他好文 > 详细

在一个字符串中找到第一个只出现一次的字符

时间:2017-12-01 17:40:13      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:输出   lag   span   索引   排序   字符串   typedef   div   style   

在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

(1)不使用额外空间,时间复杂度是O(n^2)

像冒泡排序那样,内存循环对外循环判断,比如第一个a,扫描后续元素,有a则不满足。

(2)哈希表。

k = 0; //填写哈希表时,每次设置成1就++k 
typedef struct {
    int flag;//初始化为0,第一次扫描到设置成1,再扫描到设置成2 
    int order;//初始化266,第几个设置成1的就设置成,几 
};//哈希表的结点

扫描完字符串后,就扫描哈希表:if(flag == 1 && a[ i ].order < 当前最小order索引值 )  就更新索引值。

时间复杂度是: 255 + 255 + n + 255 = O(n)

在一个字符串中找到第一个只出现一次的字符

标签:输出   lag   span   索引   排序   字符串   typedef   div   style   

原文地址:http://www.cnblogs.com/joyeehe/p/7943548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!