前端算法-字符串同构

简介: 前端算法-字符串同构

题目

给定两个字符串 st ,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。

输入: s = "paper", t = "title"
输出: true

思路一

我们这里可以使用Map数据结构进行实现,我们进入函数后先判断s形参和t形参是否相等,相等则直接同构,如果不相等,我们则创建两个变量,分别是sMap变量和tMap变量,他们是两个Map数据结构实例,用于存储s形参和t形参的数据,然后我们使用循环进行循环s形参,在循环中我们使用Map数据结构的方法进行判断s形参或者t形参当前的数据是否存在sMap变量或者tMap变量中,如果都不在sMap变量或者tMap变量中,则把当前s形参和t形参循环中的当前字符使用Map数据结构的set方法添加到sMap变量或者tMap变量中,如果都存在sMap变量或者tMap变量中,则分别在sMap变量或者tMap变量中查到到该字符并且返回对应的键值。若键值不相等,则直接返回false,若键值相等,则把该字母添加进对应的Map实例中,若只有其中一个存在于对于的Map数据结构中,那么我们也是在对应的Map实例中查找该字符,将查找到的返回键值,查到不到的返回undefined,否则就则直接返回false,如果最后可以全部都遍历结束,则直接返回true,即是同构字符串

var isIsomorphic = function(s, t) {
    if( s === t ){
       return true
    } 
    let sMap = new Map(), tMap = new Map()
    for( let i = 0; i < s.length; i++) {
        if (sMap.has(s[i]) || tMap.has(t[i])){
            if(sMap.get(s[i]) !== tMap.get(t[i]))
                return false
        }
        sMap.set(s[i], i)
        tMap.set(t[i], i)
    }
    return true   
};


相关文章
|
4月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
179 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
10天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
38 3
|
4月前
|
算法
【算法】滑动窗口——找到字符串中所有字母异位词
【算法】滑动窗口——找到字符串中所有字母异位词
|
2月前
|
算法
两个字符串匹配出最长公共子序列算法
本文介绍了最长公共子序列(LCS)问题的算法实现,通过动态规划方法求解两个字符串的最长公共子序列,并提供了具体的编程实现细节和示例。
104 1
两个字符串匹配出最长公共子序列算法
|
2月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
33 0
|
3月前
|
算法 前端开发 机器人
一文了解分而治之和动态规则算法在前端中的应用
该文章详细介绍了分而治之策略和动态规划算法在前端开发中的应用,并通过具体的例子和LeetCode题目解析来说明这两种算法的特点及使用场景。
一文了解分而治之和动态规则算法在前端中的应用
|
3月前
|
前端开发 JavaScript
前端基础(十五)_时间对象、字符串对象
本文介绍了JavaScript中时间对象的操作方法,包括获取和设置年、月、日、小时、分钟、秒等,以及如何格式化时间显示,同时提及了字符串对象的常用方法。
36 0
前端基础(十五)_时间对象、字符串对象
|
4月前
|
前端开发 JavaScript Java
【前端学java】详解java中的字符串操作(11)
【8月更文挑战第10天】详解java中的字符串操作
25 3
【前端学java】详解java中的字符串操作(11)
|
4月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
324 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
3月前
|
算法 前端开发
一文了解贪心算法和回溯算法在前端中的应用
该文章深入讲解了贪心算法与回溯算法的原理及其在前端开发中的具体应用,并通过分析LeetCode题目来展示这两种算法的解题思路与实现方法。

热门文章

最新文章