题解 | #牛群智能指导系统#

题目考察的知识点

  1. 字符串操作:需要对字符串进行分割、比较等操作。
  2. 对象和映射:使用对象来存储字符和单词的映射关系。
  3. 循环和条件语句:使用循环和条件语句来遍历字符串和进行判断。

题目解答方法的文字分析

  1. 首先,将给定的字符串进行分割成单词数组,记作words
  2. 判断patternwords的长度是否相同,如果不同,返回false
  3. 创建一个空的映射对象map来存储字符和单词的映射关系。
  4. 遍历patternwords,对于每个字符和对应的单词,进行如下判断:
    • 如果该字符已经存在于map中,并且映射的单词与当前单词不相同,说明不符合指导规律,返回false
    • 如果该字符不存在于map中,需要判断当前单词是否已经被映射到其他字符上,如果是,则说明不符合指导规律,返回false。否则,将该字符和单词添加到map中。
  5. 遍历结束后,如果没有返回false,则说明管理策略符合指导规律,返回true

本题解析所用的编程语言

本题解析所用的编程语言是JavaScript。

完整且正确的编程代码

function isValidPattern(pattern, plan) {
  const words = plan.split(" ");

  if (pattern.length !== words.length) {
    return false;
  }

  const map = {};

  for (let i = 0; i < pattern.length; i++) {
    const char = pattern[i];
    const word = words[i];

    if (map[char]) {
      if (map[char] !== word) {
        return false;
      }
    } else {
      // 判断该单词是否已经被映射到其他字符
      for (const key in map) {
        if (map[key] === word) {
          return false;
        }
      }
      map[char] = word;
    }
  }

  return true;
}
题解 | 前端刷题 文章被收录于专栏

题目考察的知识点 题目解答方法的文字分析 本题解析所用的编程语言 完整且正确的编程代码

全部评论

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务