力扣Lc23--- 290. 单词规律(java版)-2024年3月27日

1.题目描述
在这里插入图片描述
2.知识点
1)思路
(1)s.split(" "); 是将字符串 s 按空格进行分割,得到一个单词列表。
(2)建立模式字符和单词之间的双向映射关系,我们可以使用两个哈希映射(或字典)来实现。
(3)遍历 pattern 和 words 同时,为每个模式字符和单词建立双向的映射关系。
(4)查当前的模式字符和单词是否已经在映射中,如果不在,则添加映射;如果在但不匹配,则返回 false。
2)mapPatternToWord.get(‘a’):获取模式字符 a 对应的单词,这应该是之前映射中存储的值。
.equals(“dog”):检查获取的单词是否等于 “dog”
!:这是一个逻辑“非”操作符,表示取反。所以!:这是一个逻辑“非”操作符,表示取反。
!mapPatternToWord.get(‘a’).equals(“dog”) 的意思是:如果获取的单词不等于 “dog”。
3.代码实现

class Solution {
    public boolean wordPattern(String pattern, String s) {

        String[] words=s.split(" ");
        //字符串分割成单词数组
        //比如[dog cat cat dog] 变成了["dog" "cat" "cat" "dog"]

        //如果模式长度和单词字符串的长度不相同,返回false
        if(pattern.length()!=words.length)
        {
            return false;
        }
        HashMap<Character,String> PatternToWord=new HashMap<>();
        HashMap<String,Character> WordtoPattern=new HashMap<>();

        for(int i=0;i<pattern.length();i++)
        {
            char ch=pattern.charAt(i);
            //获取当前字符
            String word=words[i];
            //获取单词数组的当前单词
        if(PatternToWord.containsKey(ch))
        {
            if(!PatternToWord.get(ch).equals(word))
            {
                return false;
            }
        }
            else
            {
                PatternToWord.put(ch,word);

            }
        

        if(WordtoPattern.containsKey(word))//检查当前单词是否已经在 WordtoPattern 映射中
        {
            // 如果单词已经在映射中,检查它对应的模式字符是否与当前模式字符相同
            if(WordtoPattern.get(word)!=ch)
            {
                return false;// 如果不相同,直接返回 false
            }
        }
            else{
                WordtoPattern.put(word,ch);
            }
        }
        
           return true;

    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle数据库管理:从基础到高级应用【文末送书-45】

文章目录 入门篇&#xff1a;初识Oracle进阶篇&#xff1a;深入学习Oracle精通篇&#xff1a;掌握Oracle高级技术Oracle从入门到精通&#xff08;第5版&#xff09;&#xff08;软件开发视频大讲堂&#xff09;【文末送书-45】 在当今数字化时代&#xff0c;数据是企业成功的关…

数据结构之单链表的详细实现(图解)

前言 本次博客讲结合图例讲解单向不带头非循环链表 此后会讲解一些题目 1单链表的实现 1.1什么是单链表 我们先看数组&#xff0c;即顺序表的是什么样的&#xff0c;再看链表 1.2单链表的特点 实际中要实现的链表的结构非常多样&#xff0c;以下情况组合起来就有8种链表结…

【业界动态】Digital Twin-数字孪生

绝大多数的人对数字孪生是一个模糊的概念&#xff0c;数字孪生也被称为数字映射、数字镜像&#xff0c;他既是一种技术&#xff0c;也是一种生态。随着互联网的建设与发展&#xff0c;数字孪生在未来又会如何发展&#xff0c;虚拟与现实之间会产生怎样的星火&#xff1f; 上帝按…

【MATLAB源码-第170期】基于matlab的BP神经网络股票价格预测GUI界面附带详细文档说明。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 基于BP神经网络的股票价格预测是一种利用人工神经网络中的反向传播&#xff08;Backpropagation&#xff0c;简称BP&#xff09;算法来预测股票市场价格变化的技术。这种方法通过模拟人脑的处理方式&#xff0c;尝试捕捉股票…

chrome 浏览器报错 This page will not function without javascript enabled

This page will not function without javascript enabled. Please enable javascript on your browser. 在访问公司spark history 页面时&#xff0c;发现页面加载不全&#xff0c;并提示如上报错&#xff0c;因此按照如下步骤&#xff0c;已解决问题。 在浏览器中启用 JavaS…

产品经理进阶:抖音电商的商业逻辑(抖店)

目录 内容简介 市场情况 作者简介 内容简介 最近看到很多人在讲如何开抖店、如何做无货源等等这些事情。 这个事本身没有什么问题&#xff0c;毕竟有人下场挖金子&#xff0c;就有人卖工具。 问题在于很多是边开店边传授知识&#xff0c;而抖店本身其实赚的是信息差的钱。…

Openstack创建和操作实例,实现与外部网络通信

一、熟悉OpenStack图形界面操作 1、了解Horizon项目 Horizon项目 各OpenStack服务的图形界面都是由Horizon提供的。Horizon提供基于Web的模块化用户界面。Horizon为云管理员提供一个整体的视图。Horizon为终端用户提供一个自主服务的门户。Horizon由云管理员进行管理与控制&a…

centos7.9安装mysql

1. 概述 官网&#xff1a;https://www.mysql.com/ MySQL是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL AB 公司开发&#xff0c;MySQL是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的RDBMS (Relational Database Management S…

稀碎从零算法笔记Day28-LeetCode:零钱兑换

前言&#xff1a;鸽了好多天了哈哈哈&#xff0c;虽然C站没更但是LC还是坚持刷的&#xff0c;任重道远啊&#xff01;(可恶的寝室熄灯) 题型&#xff1a;动态规划 链接&#xff1a;322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述…

张宏波:希望 MoonBit 可以成为世界级的编程语言以及配套的工具链

首场线下 MeetUp 精彩回顾来啦&#xff01; 3月23日&#xff0c;MoonBit 的首场线下 MeetUp 如期而至&#xff0c;带来了一场关于国产软件新发展的探讨。这场活动汇集了五位行业内的知名专家&#xff0c;他们围绕国产基础软件的新发展&#xff0c;分享了四个充满洞见的主题。从…

Springboot整合Redis报错:Unable to connection Redis

今天在做Springboot整合Redis中碰到下列错误&#xff1a; 基于以上的错误首先在Xshell或者其他远程操控虚拟机的软件上看能不能连接到Redis: [zzllocalhost ~]$ redis-cli -h 192.168.136.132 -p 6379 -a ****** Warning: Using a password with -a or -u option on the comma…

AI大模型学习——AI领域技术发展

目录 前言 一、AI大模型学习的理论基础 二、AI大模型的训练与优化 三、AI大模型在特定领域的应用 四、AI大模型学习的伦理与社会影响 五、未来发展趋势与挑战 总结 前言 在当前技术环境下&#xff0c;AI大模型学习不仅要求研究者具备深厚的数学基础和编程能力&#xff…

django orm DateTimeField 6位小数精度问题

from django.db.backends.mysql.base import DatabaseWrapperDatabaseWrapper.data_types[DateTimeField] "datetime"意思就是重写源码里面的DateTimeField字段

C++ 控制语句(一)

一 顺序结构 程序的基本结构有三种&#xff1a; 顺序结构、分支结构、循环结构 大量的实际问题需要通过各种控制流程来解决。 1.1 顺序结构 1.2 简单语句和复合语句 二 循环 2.1 for循环 语句流程图 注意&#xff1a;使用for语句的灵活性 三 while语句 四 do while语句

欧科云链OKLink:比特币第四次减半即将到来,收好这份数据宝典

减半一直是 Web3 领域重点关注的时间节点&#xff0c;由此产生的数据变动会对整个市场与生态产生关键影响。多链浏览器 OKLink 作为专业数据分析平台&#xff0c;一直以来在官方网站提供减半数据入口&#xff0c;供用户清晰查看各类资产的减半情况。&#x1f449; www.oklink.c…

Spring Boot 使用过滤器、拦截器、监听器

前言 作用 过滤器&#xff08;Filter&#xff09;&#xff1a;当有一堆请求&#xff0c;只希望符合预期的请求进来。拦截器&#xff08;Interceptor&#xff09;&#xff1a;想要干涉预期的请求。监听器&#xff08;Listener&#xff09;&#xff1a;想要监听这些请求具体做了…

Vue 与 React:前端框架对比分析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

docker网段冲突导致主机连接不上

前提&#xff1a;windows电脑链接liunx服务器&#xff0c;liunx服务器里面起了docker。 场景&#xff1a;在liunx服务器里面&#xff0c;用docker-compose up -d启动容器过程中&#xff0c;终止了windows服务器连接liunx服务器 可能原因&#xff1a;1.docker自身的网卡网段与连…

AMEYA360代理 | 江苏长晶科技FST2.0高性能 IGBT产品介绍

江苏长晶科技股份有限公司是一家专业从事半导体产品研发、生产和销售的企业。自2019年起&#xff0c;连续4年被中国半导体行业协会评为 “功率器件十强企业”。2021年开始自主研发有着“工业CPU”之称的IGBT&#xff0c;截至2023年Q3在家电/工业/新能源等行业实现8款产品市场应…

HCIP-Datacom(H12-821)题库补充(3/27)

最新 HCIP-Datacom&#xff08;H12-821&#xff09;完整题库请扫描上方二维码访问&#xff0c;持续更新中。 运行OSPF协议的路由器&#xff0c;所有接口必须属于同一个区域。 A&#xff1a;正确 B&#xff1a;错误 答案&#xff1a;B 解析&#xff1a;OSPF的邻居关系是基于…