📅  最后修改于: 2023-12-03 14:57:48.151000             🧑  作者: Mango
在一个字符串中找到第一个只出现一次的字符。比如字符串“abaccdeff”中,第一个只出现一次的字符是'b'。
本题可以使用哈希表(Hash Table)来解决。
首先需要遍历一遍字符串,将每个字符出现的次数存储在哈希表中。然后再依次遍历每个字符,查找其在哈希表中出现的次数,如果只出现了一次,则返回该字符。如果整个字符串遍历完了也没有找到符合条件的字符,则返回空字符。
遍历字符串,将每个字符及其出现的次数存储在哈希表中。
hash_table = {}
for char in str:
if char not in hash_table:
hash_table[char] = 1
else:
hash_table[char] += 1
依次遍历每个字符,查找其在哈希表中出现的次数,如果只出现了一次,则返回该字符。如果整个字符串遍历完了也没有找到符合条件的字符,则返回空字符。
for char in str:
if hash_table[char] == 1:
return char
return ''
def find_first_unique_char(str):
hash_table = {}
for char in str:
if char not in hash_table:
hash_table[char] = 1
else:
hash_table[char] += 1
for char in str:
if hash_table[char] == 1:
return char
return ''
assert find_first_unique_char('abaccdeff') == 'b'
assert find_first_unique_char('abcdefg') == 'a'
assert find_first_unique_char('aabbccddeeff') == ''