第一個只出現一次的字元
阿新 • • 發佈:2020-08-02
在字串 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一一對應;
之後再次遍歷字串,找到所有字元中只出現一次的字母,返回即可。
很多人用的都是雜湊表解題,這題的初衷也是訓練有關雜湊表的理解,我這裡使用陣列只是理解起來簡單而已。