刷题之单词规律同构字符串(leetcode)

news2024/9/22 7:29:57

同构字符串
在这里插入图片描述

单词规律
在这里插入图片描述

两个都是映射关系,用两张哈希表记录互相映射就可以了

同构字符串:

class Solution {
public:
    bool isIsomorphic(string s, string t) {
        //用两张哈希表做映射
        if(s.size()!=t.size())
        {
            return false;
        }
        unordered_map<char,char>tmap;
        for(int i=0;i<t.size();i++)
        {
            if(tmap.find(t[i])!=tmap.end())
            {
                if(tmap[t[i]]!=s[i])
                    return false;
            }
            else{
                tmap[t[i]]=s[i];
            }
        }

        unordered_map<char,char>smap;
        for(int i=0;i<s.size();i++)
        {
            if(smap.find(s[i])!=smap.end())
            {
                if(smap[s[i]]!=t[i])
                    return false;
            }
            else{
                smap[s[i]]=t[i];
            }
        }
        return true;
    }
};

单词规律:

class Solution {
public:
    bool wordPattern(string pattern, string s) {
        vector<string> snum;
        int l=0;
        int r=0;
        //先把字符串分成单词
        while(l<s.size()&&r<s.size())
        {
            while(s[r]==' ')
            {
                r++;
            }
            while(r<s.size()&s[r]!=' ')
            {
                r++;
            }
            string word(s.begin()+l,s.begin()+r);
            snum.push_back(word);
            l=r+1;
        }
        if(pattern.size()!=snum.size())
            return false;
        unordered_map<char,string>cmap;
        unordered_map<string,char>smap;
        for(int i=0;i<pattern.size();i++)
        {
            if(cmap.count(pattern[i])&&cmap[pattern[i]]!=snum[i])
            {
                return false;
            }
            cmap[pattern[i]]=snum[i];
            if(smap.count(snum[i])&&smap[snum[i]]!=pattern[i])
            {
                return false;
            }
            smap[snum[i]]=pattern[i];
        }
        return true;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1925339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础学JS之APIS

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

算法day04 位运算 插入排序 二分法 对数器

位运算: 1&#xff09;有一个数组只包含这样的数&#xff0c;有几个数出现偶数次&#xff0c;有1个数出现奇数次&#xff0c;要求时间复杂度不超过o(n),怎么求出现奇数次的数。 使用 ^ 异或运算整个数组&#xff0c;偶数次运算结果为0&#xff0c;只留下最后一个奇数次的数。 …

【零基础】学JS之APIS第四天

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

网络层重点协议—IP协议

在复杂的网络环境中确定一个合适的路径 协议头格式如下&#xff1a; 4位版本号(version) 指定协议的版本&#xff08;IPV4-4,IPV6-6&#xff09; 4位首部长度(header length) IP头部的长度是多少个32bit&#xff0c;也就是length*4的字节数。4bit表示最大的数字是15&#x…

记一次TIDB开启TLS失败导致PD扩容失败案例

作者&#xff1a; Dora 原文来源&#xff1a; https://tidb.net/blog/8ee8f295 问题背景 集群之前由于TIUP目录被删除导致TLLS证书丢失&#xff0c;后续需要重新开启TLS 在测试环境测试TLS开启步骤&#xff0c;导致后续两台PD扩容失败&#xff0c;步骤如下&#xff1a; …

Linux Win 10 Windows上安装Ollama部署大模型qwen2 7b/15配置启动 LangChain-ChatChat 0.2.10进行对话

Win 10 Window安装Ollama部署qwen2 7b LangChain-ChatChat 环境说明 Win 10 Python 3.11.9 LangChain-ChatChat 0.20 Ollama 0.2.10 Qwen2 1.5b/7b Windows 安装Ollama 下载并安装Windows版Ollama https://ollama.com/download#/ 下载大模型qwen2:1.5b或者qwen2:7b 在命令…

电子技术员基础

这是介绍电子技术员必须掌握的基础知识&#xff0c;在维修和测试中可能有所帮助。放在电脑里有几十年了&#xff0c;是我早期在做电子技术员期间做的文档&#xff0c;所有插图都是自己做的&#xff0c;当初学习态度是绝对认真。如果把这股子劲用在考研上呢&#xff0c;... ...&…

Dataset for Stable Diffusion

1.Dataset for Stable Diffusion 笔记来源&#xff1a; 1.Flickr8k数据集处理 2.处理Flickr8k数据集 3.Github&#xff1a;pytorch-stable-diffusion 4.Flickr 8k Dataset 5.dataset_flickr8k.json 6.About Train, Validation and Test Sets in Machine Learning Tarang Shah …

python-28-零基础自学python-json存数据、读数据,及程序合并

学习内容&#xff1a;《python编程&#xff1a;从入门到实践》第二版 知识点&#xff1a; import json引入、 try-except-else return def函数、打开文件、 练习内容&#xff1a; 练习10-11&#xff1a;喜欢的数 编写一个程序&#xff0c;提示用户输入喜欢的数&#xff…

机器学习基本概念,Numpy,matplotlib和张量Tensor知识进一步学习

机器学习一些基本概念&#xff1a; 监督学习 监督学习是机器学习中最常见的形式之一&#xff0c;它涉及到使用带标签的数据集来训练模型。这意味着每条训练数据都包含输入特征和对应的输出标签。目标是让模型学会从输入到输出的映射&#xff0c;这样当给出新的未见过的输入时…

06:串口通信一

串口通信初识 1、串口的基本认识2、串口的电平3、接线方式4、通过单片机向PC发送每隔1s发送一个字符A 1、串口的基本认识 串口也就是接口&#xff0c;称串行通信接口或串行通讯接口(通常指COM接口)&#xff0c;是采用串行通信方式的扩展接口。用来进行数据一位一位地顺序传送。…

【2024_CUMCM】时间序列4-实战

目录 思考建模思路 例1 定义date 创建时间序列模拟器 结果分析 例2 序列图 创建时间序列模型 未除去异常值 剔除有异常值 勾选 结果 注 思考建模思路 &#xff08; 1 &#xff09;处理数据的缺失值问题、生成时间变量并画出时间序列图&#xff1b; &…

OpenGL笔记九之彩色三角形与重心插值算法

OpenGL笔记九之彩色三角形与重心插值算法 —— 2024-07-07 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记九之彩色三角形与重心插值算法1.运行3.main.cpp 1.运行 3.main.cpp 代码 #include <iostream>#define DEBUG//注意&#xff1a;glad…

算法 —— 高精度

目录 加法高精度 两个正整数相加 两个正小数相加 两正数相加 减法高精度 两个正整数相减 两个正小数相减 两正数相减 加减法总结 乘法高精度 两个正整数相乘 两个正小数相乘 乘法总结 加法高精度 题目来源洛谷&#xff1a;P1601 AB Problem&#xff08;高精&#x…

链路追踪系列-01.mac m1 安装zipkin

下载地址&#xff1a;https://hub.docker.com/r/openzipkin/zipkin jelexjelexxudeMacBook-Pro zipkin-server % pwd /Users/jelex/Documents/work/zipkin-server 先启动Es: 可能需要先删除 /Users/jelex/dockerV/es/plugins 目录下的.DS_Store 当端口占用时再次启动&#x…

java多线程操作之CAS

1&#xff0c;什么是CAS&#xff1f; CAS&#xff08;Compare-And-Swap&#xff09; 比较并交换&#xff0c;用于实现同步和锁机制。经常配合juc中Atomic相关类进行。Atomic相关类无法解决aba问题。 2&#xff0c;CAS核心思想是什么&#xff1f; 比较和交换。本质上就是乐观锁…

数字电路-建立时间和保持时间详解

对于数字系统而言&#xff0c;建立时间&#xff08;setup time&#xff09;和保持时间&#xff08;hold time&#xff09;是数字电路时序的基础。数字电路系统的稳定性&#xff0c;基本取决于时序是否满足建立时间和保持时间。我自己在初学时一度很难理解清楚他们的概念&#x…

android studio开发

Kotlin 编程简介 | Android Basics Compose - First Android app | Android Developers (google.cn) 这是官网的教程&#xff0c;实现试一下。 之后进入课程 您的第一个 Kotlin 程序 (google.cn) 程序可以被视为一系列指示计算机或设备执行某项操作的指令&#xff0c;

Highlight.js示例

图例 代码在图片后面 点赞❤️关注&#x1f64f;收藏⭐️ 源代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"…

2024007月份 制作一个 Windows 10 U disk 安装工具

1&#xff0c;下载微软官方 Win10 U盘安装工具 工具名称&#xff1a; MediaCreationTool 下载地址&#xff1a; https://www.microsoft.com/zh-cn/software-download/windows10 2&#xff0c;制作 U盘安装盘 双击打开&#xff0c;并单击“接受” 选中 为另一台电脑创建安…