[Leetcode]2.第一个只出现一次的字符

题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

输入:s = "abaccdeff"

输出:'b'

输入:s = ""

输出:' '

 

算法思想:遍历整个字符串,将出现的字符对应减去'a'的ASCII码,转为0-25的数字,存入数组中.再遍历整个字符串(以字符串的顺序),将首个遇到的数组元素为1的字符输出.

func firstUniqChar(s string) byte {
    cnt := [26]int{}
    for _, ch := range s {
        cnt[ch-'a']++
    }
    for _,ch := range s {
        if cnt[ch - 'a'] == 1 {
            return byte(ch)
        }
    }
    return ' '
}

题目来源:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/

posted @ 2021-10-17 15:58  梦想是能睡八小时的猪  阅读(34)  评论(0)    收藏  举报