返回
LeetCode 2351. First Letter to Appear Twice
后端
2024-02-05 08:44:48
LeetCode 2351. First Letter to Appear Twice 是 LeetCode Weekly Contest 303 的第一题,难度为 Eazy。这道题主要考查的是对题目的理解和计数器的使用。
题目
给你一个字符串 s,字符串 s 由小写英文字母组成。请你返回字符串 s 中第一个重复出现的字母。如果字符串 s 中没有重复出现的字母,则返回字符 ' '。
示例 1:
输入:s = "abcabc"
输出:"a"
示例 2:
输入:s = "abc"
输出:" "
解题思路:
这道题我们可以使用一个计数器来解决。我们首先创建一个字典,其中 key 是小写英文字母,value 是该字母出现的次数。然后我们遍历字符串 s,对于每个字符,我们都将其对应的计数器加 1。如果计数器大于 1,说明该字母出现了两次,我们可以直接返回该字母。如果遍历完整个字符串,都没有找到重复出现的字母,则返回字符 ' '。
代码实现:
def first_letter_to_appear_twice(s):
"""
:type s: str
:rtype: str
"""
# 创建一个字典,其中 key 是小写英文字母,value 是该字母出现的次数
char_count = {}
for char in s:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 遍历字符串 s,对于每个字符,我们都将其对应的计数器加 1
for char in s:
# 如果计数器大于 1,说明该字母出现了两次,我们可以直接返回该字母
if char_count[char] > 1:
return char
# 如果遍历完整个字符串,都没有找到重复出现的字母,则返回字符 ' '
return ' '
# 测试代码
print(first_letter_to_appear_twice("abcabc")) # 输出:"a"
print(first_letter_to_appear_twice("abc")) # 输出:" "
复杂度分析:
- 时间复杂度:O(n),其中 n 是字符串 s 的长度。
- 空间复杂度:O(1),因为我们只使用了一个字典来存储字母的出现次数。
这道题的代码实现非常简单,也很容易理解。如果你对 LeetCode 2351. First Letter to Appear Twice 这道题还有任何疑问,欢迎在评论区留言。