LeetCode-No.2828. 判别首字母缩略词
本文最后更新于 2024-07-19,文章内容可能已经过时。
题目
给你一个字符串数组 words
和一个字符串 s
,请你判断 s
是不是 words
的 首字母缩略词 。
如果可以按顺序串联 words
中每个字符串的第一个字符形成字符串 s
,则认为 s
是 words
的首字母缩略词。例如,"ab"
可以由 ["apple", "banana"]
形成,但是无法从 ["bear", "aardvark"]
形成。
如果 s
是 words
的首字母缩略词,返回 true
;否则,返回 false
。
示例 1:
输入:words = ["alice","bob","charlie"], s = "abc"
输出:true
解释:words 中 "alice"、"bob" 和 "charlie" 的第一个字符分别是 'a'、'b' 和 'c'。因此,s = "abc" 是首字母缩略词。
示例 2:
输入:words = ["an","apple"], s = "a"
输出:false
解释:words 中 "an" 和 "apple" 的第一个字符分别是 'a' 和 'a'。
串联这些字符形成的首字母缩略词是 "aa" 。
因此,s = "a" 不是首字母缩略词。
示例 3:
输入:words = ["never","gonna","give","up","on","you"], s = "ngguoy"
输出:true
解释:串联数组 words 中每个字符串的第一个字符,得到字符串 "ngguoy" 。
因此,s = "ngguoy" 是首字母缩略词。
提示:
1 <= words.length <= 100
1 <= words[i].length <= 10
1 <= s.length <= 100
words[i]
和s
由小写英文字母组成
答案代码
"""
示例 1:
输入:words = ["alice","bob","charlie"], s = "abc"
输出:true
解释:words 中 "alice"、"bob" 和 "charlie" 的第一个字符分别是 'a'、'b' 和 'c'。因此,s = "abc" 是首字母缩略词。
示例 2:
输入:words = ["an","apple"], s = "a"
输出:false
解释:words 中 "an" 和 "apple" 的第一个字符分别是 'a' 和 'a'。
串联这些字符形成的首字母缩略词是 "aa" 。
因此,s = "a" 不是首字母缩略词。
示例 3:
输入:words = ["never","gonna","give","up","on","you"], s = "ngguoy"
输出:true
解释:串联数组 words 中每个字符串的第一个字符,得到字符串 "ngguoy" 。
因此,s = "ngguoy" 是首字母缩略词。
提示:
1 <= words.length <= 100
1 <= words[i].length <= 10
1 <= s.length <= 100
words[i] 和 s 由小写英文字母组成
"""
class Solution(object):
def isAcronym(self, words, s):
"""
:type words: List[str]
:type s: str
:rtype: bool
"""
# 检查 s 的长度是否与 words 的数量匹配
if len(words) != len(s):
return False
# 比较每个单词的首字母与 s 中对应的字符
for i in range(len(words)):
if words[i][0] != s[i]:
return False
return True
if __name__ == '__main__':
print(Solution().isAcronym(words=["alice", "bob", "charlie"], s="abc"))
print(Solution().isAcronym(words=["an", "apple"], s="a"))
print(Solution().isAcronym(words=["never", "gonna", "give", "up", "on", "you"], s="ngguoy"))
print(Solution().isAcronym(words=["a", "b", "c"], s="abcd"))
结果分析
时间复杂度:在最坏的情况下,isAcronym函数需要遍历words
列表中的每个单词,并检查其第一个字符是否与s
中的相应字符匹配。这种情况发生在words
中的所有单词都是单字符的情况下。如果words
列表的长度为n,那么时间复杂度为O(n)。然而,在实际情况中,单词的长度通常不止一个字符,因此平均情况下,时间复杂度会更低。
空间复杂度:isAcronym函数只使用了常数级别的额外空间,用于存储循环变量i
。因此,空间复杂度为O(1)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Lin
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果