列表

详情


7004. 判别首字母缩略词

给你一个字符串数组 words 和一个字符串 s ,请你判断 s 是不是 words首字母缩略词

如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s ,则认为 swords 的首字母缩略词。例如,"ab" 可以由 ["apple", "banana"] 形成,但是无法从 ["bear", "aardvark"] 形成。

如果 swords 的首字母缩略词,返回 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" 是首字母缩略词。 

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool isAcronym(vector<string>& words, string 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

上一题