前端算法-单词规律

简介: 前端算法-单词规律

题目

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。

输入: pattern = "aaaa", s = "dog cat cat dog"
输出: false

思路一

我们这里可以使用Map进行实现,先声明一个matchMap变量,它的值是Map数据结构的实例,然后在声明一个变量patternArr,它的值是我们对形参pattern使用split方法的返回的数组,然后在声明一个sArr变量,对形参s使用split方法将其返回的数组赋值给sArr变量,然后进行判断当前patternArr数组和sArr数组数据长度是否一致,如果不一致直接返回false,然后对patternArr数组进行循环,在循环中声明pItem变量和sItem变量,他们存储的分别是当前patternArr数组的某一项和当前sArr数组的某一项,然后我们使用Set数据结构中的values方法获取到matchMap变量中的所有value值,在使用Array.from方法将其转换成数组,然后在使用Set数据结构中has方法和数组中的includes方法判断一下当前的pItem变量和sItem变量是否存在于matchMap变量中或者valuesArr数组中,如果存在则返回false,不存在且key值不存在于matchMap变量中则使用set方法把pItem变量当作key,sItem变量当作value存储到matchMap变量中,接下来在判断如果sItem变量不存在且key存在于matchMap变量中返回false,如果最后都没有返回,则直接返回true

var wordPattern = function(pattern, s) {
    let matchMap = new Map()
    let patternArr = pattern.split('')
    let sArr = s.split(' ')
    if(patternArr.length!=sArr.length){
        return false
    }
    for(let i = 0;i<patternArr.length;i++){
        let pItem = patternArr[i]
        let sItem = sArr[i]
        let valuesArr = Array.from(matchMap.values())
        if(!matchMap.has(pItem)&&valuesArr.includes(sItem)){
            return false
        }else if(!matchMap.has(pItem)){
            matchMap.set(pItem,sItem)
        }else if(sItem!=matchMap.get(pItem)){
            return false
        }
    }
    return true
};


相关文章
|
5月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
190 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
16天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
51 3
|
3月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
35 0
|
4月前
|
算法 前端开发 机器人
一文了解分而治之和动态规则算法在前端中的应用
该文章详细介绍了分而治之策略和动态规划算法在前端开发中的应用,并通过具体的例子和LeetCode题目解析来说明这两种算法的特点及使用场景。
一文了解分而治之和动态规则算法在前端中的应用
|
8月前
|
前端开发 算法
sass 公用10个mixins代码块,算法太TM重要了,前端开发要求
sass 公用10个mixins代码块,算法太TM重要了,前端开发要求
|
5月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
344 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
4月前
|
算法 前端开发
一文了解贪心算法和回溯算法在前端中的应用
该文章深入讲解了贪心算法与回溯算法的原理及其在前端开发中的具体应用,并通过分析LeetCode题目来展示这两种算法的解题思路与实现方法。
|
5月前
|
JavaScript 算法 前端开发
"揭秘Vue.js的高效渲染秘诀:深度解析Diff算法如何让前端开发快人一步"
【8月更文挑战第20天】Vue.js是一款备受欢迎的前端框架,以其声明式的响应式数据绑定和组件化开发著称。在Vue中,Diff算法是核心之一,它高效计算虚拟DOM更新时所需的最小实际DOM变更,确保界面快速准确更新。算法通过比较新旧虚拟DOM树的同层级节点,递归检查子节点,并利用`key`属性优化列表更新。虽然存在局限性,如难以处理跨层级节点移动,但Diff算法仍是Vue高效更新机制的关键,帮助开发者构建高性能Web应用。
84 1
|
5月前
|
数据采集 前端开发 算法
基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库
本文介绍了一个基于Django框架和朴素贝叶斯算法开发的新闻类型预测系统,该系统具备用户登录注册、后台管理、数据展示、新闻分类分布分析、新闻数量排名和新闻标题预测等功能,旨在提高新闻处理效率和个性化推荐服务。
|
5月前
|
算法 容器
【算法】滑动窗口——串联所有单词的子串
【算法】滑动窗口——串联所有单词的子串