2828. 判别首字母缩略词

发布于:2024-03-08 ⋅ 阅读:(94) ⋅ 点赞:(0)

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

给你一个字符串数组 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 数组的长度是否与字符串 s 的长度相同。如果不同,说明 s 不可能是由 words 中所有单词的首字母组成的缩写,因此直接返回 false

  2. 如果长度相同,函数进入一个 for 循环,遍历 words 数组中的每个单词和字符串 s 中的每个字符。

  3. 在循环中,函数比较 words 数组中第 i 个单词的第一个字符(words[i][0])与字符串 s 中的第 i 个字符(s[i])。如果这两个字符不相等,说明 s 不是由 words 中的单词首字母组成的缩写,函数返回 false

  4. 如果所有单词的首字母都与 s 中对应的字符相匹配,循环结束后,函数返回 true,表示 swords 的缩写。

AC代码

/**
 * @param {string[]} words
 * @param {string} s
 * @return {boolean}
 */
var isAcronym = function (words, s) {
  if (words.length !== s.length) return false;
  for (let i = 0; i < words.length; i++) {
    if (words[i][0] !== s[i]) return false;
  }
  return true;
};

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

本文含有隐藏内容,请 开通VIP 后查看

微信公众号

今日签到

点亮在社区的每一天
去签到