《剑指 Offer (第 2 版)》第 50-1 题:字符串中第一个只出现一次的字符

第 50-1 题:字符串中第一个只出现一次的字符

传送门:字符串中第一个只出现一次的字符。

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

如输入"abaccdeff",则输出b

如果字符串中不存在只出现一次的字符,返回#字符。

样例:

输入:"abaccdeff"

输出:'b'

同 LeetCode 第 387 题,传送门:字符串中的第一个唯一字符。

思路:特别容易想到的思路,就是统计词频,统计词频可以用哈希表,也可以用数组。

Python 代码:

class Solution:
    def firstNotRepeatingChar(self, s):
        """
        :type s: str
        :rtype: str
        """
        if len(s) < 1:
            return '#'

        counter = [0 for _ in range(256)]
        for alpha in s:
            counter[ord(alpha)] += 1
        for alpha in s:
            if counter[ord(alpha)] == 1:
                return alpha
        # 要注意:如果是 "aabbcc" 这种所有的字符都出现不止 1 次,
        # 就按照题意,返回 '#'
        return '#'

你可能感兴趣的:(《剑指 Offer (第 2 版)》第 50-1 题:字符串中第一个只出现一次的字符)