7004. 判别首字母缩略词
给你一个字符串数组 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
由小写英文字母组成原站题解
python3 解法, 执行用时: 52 ms, 内存消耗: 17.9 MB, 提交时间: 2023-12-20 00:16:18
class Solution: def isAcronym(self, words: List[str], s: str) -> bool: return len(words) == len(s) and all(w[0] == c for w, c in zip(words, s))
rust 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2023-09-12 20:04:51
impl Solution { pub fn is_acronym(words: Vec<String>, s: String) -> bool { /* if words.len()!=s.len(){return false;} let mut s_iter=s.chars(); for str in words.iter(){ if str.chars().nth(0)!=s_iter.next(){ return false; } } true */ words.iter().fold(String::new(), |st, w| st + &w[..1]) == s } }
php 解法, 执行用时: 28 ms, 内存消耗: 19 MB, 提交时间: 2023-09-12 20:03:50
class Solution { /** * @param String[] $words * @param String $s * @return Boolean */ function isAcronym($words, $s) { return array_reduce($words, function($a, $b) { return $a . $b[0]; }, '') == $s; } }
cpp 解法, 执行用时: 20 ms, 内存消耗: 37.7 MB, 提交时间: 2023-08-21 09:38:31
class Solution { public: bool isAcronym(vector<string> &words, string s) { if (words.size() != s.length()) return false; for (int i = 0; i < words.size(); i++) if (words[i][0] != s[i]) return false; return true; } };
java 解法, 执行用时: 1 ms, 内存消耗: 42.4 MB, 提交时间: 2023-08-21 09:38:08
class Solution { public boolean isAcronym(List<String> words, String s) { if (words.size() != s.length()) return false; for (int i = 0; i < words.size(); i++) if (words.get(i).charAt(0) != s.charAt(i)) return false; return true; } }
golang 解法, 执行用时: 0 ms, 内存消耗: 3.4 MB, 提交时间: 2023-08-21 09:37:47
func isAcronym(words []string, s string) bool { if len(words) != len(s) { return false } for i, w := range words { if w[0] != s[i] { return false } } return true }
golang 解法, 执行用时: 4 ms, 内存消耗: 3.5 MB, 提交时间: 2023-08-21 09:37:09
func isAcronym(words []string, s string) bool { ans := []byte{} for _, word := range words { ans = append(ans, word[0]) } return string(ans) == s }
python3 解法, 执行用时: 52 ms, 内存消耗: 16.1 MB, 提交时间: 2023-08-21 09:35:03
class Solution: def isAcronym(self, words: List[str], s: str) -> bool: return ''.join(word[0] for word in words) == s