1. 程式人生 > 實用技巧 >第一個只出現一次的字元

第一個只出現一次的字元

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

示例:

s = "abaccdeff"
返回 "b"

s = ""
返回 " "

限制:

0 <= s 的長度 <= 50000

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof

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

解題思路:由於題目給出了一個條件(s 只包含小寫字母。)所以可以利用陣列將26個字母全部儲存,每一個索引從a--z一一對應;

之後再次遍歷字串,找到所有字元中只出現一次的字母,返回即可。

很多人用的都是雜湊表解題,這題的初衷也是訓練有關雜湊表的理解,我這裡使用陣列只是理解起來簡單而已。