您好,登錄后才能下訂單哦!
小編給大家分享一下LeetCode如何找出第一個只出現一次的字符,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在字符串 s 中找出第一個只出現一次的字符。如果沒有,返回一個單空格。s 只包含小寫字母。
0 <= s 的長度 <= 50000
s = "abaccdeff"
返回 "b"
s = ""
返回 " "
c => [firstIndex, cnt]
這樣的 kv 組合, 最后只需要找 cnt==1
且 firstIndex 最小的 c 即可class Solution:
def firstUniqChar(self, s: str) -> str:
# 字典存c => [firstIndex, cnt]
# 這樣只需要遍歷一遍字符串
d = {}
for i, c in enumerate(s):
if c in d:
# 只更新cnt
d[c][1] += 1
else:
d[c] = [i, 1]
res = ' '
# 初始化最小下標為字符串長度, 有效下標肯定都小于它
mnIndex = len(s)
for c in d:
firstIndex, cnt = d[c]
if cnt == 1 and firstIndex < mnIndex:
mnIndex = firstIndex
res = c
return res
以上是“LeetCode如何找出第一個只出現一次的字符”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。