[演算法練習及思路-leetcode劍指offer(Java解法)]No50.第一個只出現一次的字元

葉落雨飄發表於2020-12-19

題號:劍指 Offer 50

題目名:第一個只出現一次的字元

原題URL:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/

題目描述

在字串 s 中找出第一個只出現一次的字元。如果沒有,返回一個單空格。 s 只包含小寫字母。

示例

示例 1:

s = "abaccdeff"
返回 "b"

s = "" 
返回 " "

限制

  • 0 <= s 的長度 <= 50000

思路

1.雜湊表,用陣列儲存每個字元出現的次數

解題程式碼

class Solution {
    public char firstUniqChar(String s) {
        if(s==null||s.isEmpty()) return ' ';
        char[] chars = s.toCharArray();
        int[] hash = new int[26];
        for (int i = 0; i < chars.length; i++) {
            hash[chars[i]-'a']++;
        }
        for (int i = 0; i < chars.length; i++) {
            if(hash[chars[i]-'a'] == 1) return chars[i];
        }
        return ' ';
    }
}

相關文章