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

Posted 旗正飘飘 马正萧萧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个字符串中找到第一个只出现一次的字符相关的知识,希望对你有一定的参考价值。

在一个字符串中找到第一个只出现一次的字符。如输入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)

以上是关于在一个字符串中找到第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章

最强解析面试题:第一个只出现一次的字符

最强解析面试题:第一个只出现一次的字符

剑指Offer-第一个只出现一次的字符位置

第一个只出现一次的字符

第一个只出现一次的字符

剑指offer第一个只出现一次的字符