给你一个字符串数组 w o r d s words words 和一个字符串 s s s ,请你判断 s s s 是不是 w o r d s words words 的 首字母缩略词 。
如果可以按顺序串联 w o r d s words words 中每个字符串的第一个字符形成字符串 s s s ,则认为 s s s 是 w o r d s words words 的首字母缩略词。例如,“ a b ab ab” 可以由 [“ a p p l e apple apple”, “ b a n a n a banana banana”] 形成,但是无法从 [“ b e a r bear bear”, “ a a r d v a r k aardvark aardvark”] 形成。
如果 s s s 是 w o r d s words words 的首字母缩略词,返回 t r u e true true ;否则,返回 f a l s e false false 。
输入:words = [“alice”,“bob”,“charlie”], s = “abc”
输出:true
解释:words 中 “alice”、“bob” 和 “charlie” 的第一个字符分别是 ‘a’、‘b’ 和 ‘c’。因此,s = “abc” 是首字母缩略词。
输入:words = [“an”,“apple”], s = “a”
输出:false
解释:words 中 “an” 和 “apple” 的第一个字符分别是 ‘a’ 和 ‘a’。
串联这些字符形成的首字母缩略词是 “aa” 。
因此,s = “a” 不是首字母缩略词。
输入: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 由小写英文字母组成
题目类型: 字符串
简单题名不虚传。直接遍历即可。如果
s
s
s和
w
o
r
d
s
words
words长度不相等,直接返回
f
a
l
s
e
false
false。遍历
s
s
s,如果
s
[
i
]
≠
w
o
r
d
s
[
i
]
[
0
s[i]≠words[i][0
s[i]=words[i][0],返回
f
a
l
s
e
false
false。遍历完成后,返回
t
r
u
e
true
true。
首先看我自己的代码:
class Solution(object):
def isAcronym(self, words, s):
"""
:type words: List[str]
:type s: str
:rtype: bool
"""
len_words= len(words)
len_s = len(s)
if len_words!=len_s:
return False
for i in range(len_words):
if words[i][0] != s[i]:
return False
return True
然后再看一下LeetCode的官方代码:
class Solution:
def isAcronym(self, words: List[str], s: str) -> bool:
return len(words) == len(s) and
all(words[i][0] == s[i] for i in range(len(s)))
写的真是精简哇。距离成为大佬还有很长的路要走。加油!共勉!