力扣290-单词规律(Java详细题解)

leetcode 290. 单词规律(Java版) 题目 https://leetcode-cn.com/problems/word-pattern/ 题解 题目要求 pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着 双向连接 的对应规律,因此,建立两个 hashmap,分别验证正向、反向是否对应即可。 class Solution { public boolean wordPattern(String pattern, String s) { HashMap<Character, String> 阅读详情

力扣290-单词规律

一、原题题目(简单)

1.1 题目

​ 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。

1.2 示例

  • 示例1:
    输入: pattern = “abba”, str = “dog cat cat dog”
    输出: true
  • 示例2:
    输入: pattern = “abba”, str = “dog cat cat fish”
    输出: false
  • 示例3:
    输入: pattern = “aaaa”, str = “dog cat cat dog”
    输出: false
  • 示例4:
    输入: pattern = “abba”, str = “dog dog dog dog”
    输出: false
  • 说明: 你可以假设 pattern 只包含小写字母,str 包含了由单个空格分隔的小写字母。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/word-pattern

二、解题思路

2.1 题目意思理解

​ 这个题目是个很简单的题目,很容易想到思路。

  • 首先用 split 函数将字符串 str 按空格切割成字符串数组 arraystr []。
  • 比较 pattern 与 arraystr 的长度,如果不相同直接返回 false ,否则进入下面的比较过程。
  • 建立一个 HashMap,键用来存储 pattern 中的字母,值用来存储 arraystr 数组中对应位置的单词,当然在存储的过程中会进行检验的,当键值对都没存在过时则加入 HashMap ,当有一个(键或值)存在时,取出该键值对与当前准备插入的比较,若完全相同则符合,直接下一个,若有一个(键或值)不相同时,则直接返回 false 。
  • 如果程序跑到了最后还没返回 false 则返回 true 。

2.2 详细代码(Java)

public class Solution {
    public boolean wordPattern(String pattern, String s) {
        String[] arraystr = s.split(" ");                     // 分割字符串
        if (arraystr.length != pattern.length())    return false;   // 长度不同,直接返回false
        HashMap<Character,String> map = new HashMap<>();
        for (int i = 0;i<pattern.length();i++){
            if (!map.containsKey(pattern.charAt(i))){               // 当前键在map中没存在过
                if (!map.containsValue(arraystr[i]))                // 当前值在map中也没存在过
                    map.put(pattern.charAt(i),arraystr[i]);         // 都没存在则加入map
                else return false;                                  // 健不存在但值存在,返回false
            }
            else {                                                  // 键存在
                if (map.get(pattern.charAt(i)).equals(arraystr[i]));// 值也存在,并且就是对应的键值对,什么也不做跳过
                else return false;                                  // 所存的键值对与当前不一样,返回false
            }
        }
        return true;                                                // 遍历结束,没有中途返回false的说明符合规律
    }
}
  • 代码第13行进行字符串内容的比较的时候一定要用.equals函数来比较,不能用==或!=,否则都会出错。

2.3 算法执行结果

算法执行结果

三、总结分析

​ 题目很简单,单纯的哈希表的练习。

Java实现 LeetCode 290 单词规律 290. 单词规律 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = “abba”, str = “dog cat cat dog” 输出: true 示例 2: 输入:pattern = “a... 阅读详情

相关推荐

力扣题目系列:290. 单词规律

刷题系列博客链接:机试题目 目录 题目及示例 我的题解 题目及示例 给定一种规律 pattern和一个字符串str,判断 str 是否遵循相同的规律。 这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = "abba", str = "dog cat cat dog" 输出: true 示例 2: 输入:pattern = "abba", str = "dog ca...

_天涯__的博客 328

290 单词规律

290 单词规律 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = “abba”, str = “dog cat cat dog” 输出: true 示例 2: 输入:pattern = “abba”, str = “dog cat cat fish” 输出: false 示例 3: 输入: patter

愤怒的阿木木的博客 379

十大排序算法详解(一)冒泡排序、选择排序、插入排序、快速排序、希尔排序

冒泡排序、选择排序、插入排序、快速排序、希尔排序

HK的博客 18万+

力扣 290.单词模式 题解

力扣 290.单词模式 题解 题目 290.给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。 链接:(https://leetcode-cn.com/problems/word-pattern/). 题解:由于题目是要完全匹配,可以...

qinglengguyu的博客 378

MMSegmentation 安装教程,避免mmcv不合适版本,及相关问题解决

都行,不做要求。

qq_43683133的博客 1220

leetcode.290:单词规律

给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = “abba”, str = “dog cat cat dog” 输出: true 示例 2: 输入:pattern = “abba”, str = “dog cat cat fish” 输出: false 示例 3: 输入: pattern = “aaaa

janyoo的博客 277

Wireshark时间分析实战:精准调试网络延迟与时间同步问题

本文深入探讨了Wireshark在网络延迟与时间同步问题分析中的核心应用。通过实战案例,详细讲解了如何设置时间显示格式、利用时间参考点量化关键路径延迟,以及运用时间平移功能校正错位时间轴。掌握这些时间分析技巧,能帮助网络工程师精准定位隐藏于数据包时序中的性能瓶颈与故障根源。

weixin_29290963的博客 262

46.单词规律-LeetCode-Java

给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = "abba", str = "dog cat cat dog" 输出: true 示例 2: 输入:pattern = "abba", str = "dog cat cat fish" 输出: false 示例 3: 输入: pattern = "a

思变的博客 153

CTF-MISC:BUUCTF练习汇总(1-25题,不包括签到题)

解题思路:该题比较基础,wireshark打开过滤HTTP流量包,追踪HTTP流后可以看到base64密文,解密后得到jpg图片,打开图片即可看到flag,在线OCR识别即可提取出flag值。解题思路:zip压缩包解压需要密码,图片中的盲文为解压的密码,解压后得到MP3音频文件,内容为典型的摩斯密码;解题思路:由题目可以为LSB隐写,使用StegSolve打开图片查看最低有效位得到PNG信息,另存为图片后发现是二维码,扫描后即可得到flag。对应摩斯电码为:-.-. - …-. .-- .–. . …

燕麦葡萄干的博客 1万+

干法刻蚀工艺进阶:如何通过调节DC自偏压优化刻蚀速率和各向异性

本文深入探讨了干法刻蚀工艺中DC自偏压的精细调控艺术。DC自偏压是影响刻蚀速率和各向异性的关键因素,文章通过实战案例,详细分析了如何通过调节射频功率、频率、腔室压力及气体成分等参数,间接而有效地控制DC自偏压,从而优化高深宽比硅沟槽等复杂结构的刻蚀效果,实现工艺性能的精准提升。

weixin_28308325的博客 333

Java | Leetcode Java题解之第290题单词规律

Java | Leetcode Java题解之第290题单词规律

m0_57195758的博客 466

3、神经网络在汽车中的应用

本文探讨了神经网络在现代汽车中的多种应用,包括防抱死制动系统(ABS)、燃油喷射系统、自动驾驶辅助系统以及发动机故障诊断。通过详细分析这些系统的具体工作流程和神经网络的集成方式,展示了神经网络如何提升车辆的安全性、效率与智能化水平。

moss5的博客 234

【简单】力扣算法题解析LeetCode290:单词规律

字符串模式匹配 判断字符串 s 的单词是否遵循 pattern 的字符规律,要求字符与单词双向一一对应。 思路: 分割 s 为单词数组,校验长度是否匹配 pattern。 维护两个哈希表:字符→单词 和 单词→字符。 遍历时检查: 若字符已映射,需匹配当前单词; 若单词被其他字符映射,返回 false; 否则建立双向映射。 代码亮点: 提前长度校验提升效率

ylumwd的博客 636

[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向破解

这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。上一篇文章分享了IDA Pro反汇编工具的基础用法,并简单讲解一个EXE逆向工程解密实战方法;本篇文章将讲解动态分析OllyDbg工具的基础用法,主要是结合两个Crakeme案例逆向破解。希望对初学者有帮助,大神请飘过,谢谢各位看官!

杨秀璋的专栏 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

290.单词规律

package test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /* 290.单词规律 给定一种规律 pattern和一个字符串str,判断 str 是否遵循相同的规律。 这里的遵循指完全匹配,例如,pattern里...

m0_37648645的博客 281

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LeetCode 图解 | 290 . 单词规律

文 |景禹来源:图解面试算法「ID: LeetCodeAnimation」题目来源于 LeetCode 上第 290 号问题:单词规律。题目难度为 Easy,目前通过率为 42.4%...

程序员吴师兄的博客 469

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LeetCode题练习与总结:单词规律--290

本文详细解析了如何判断字符串是否遵循特定规律的问题,通过使用哈希表建立字符与单词的双向映射关系,实现了高效的匹配检查,涵盖了Java编程中的多个核心知识点。

一直学习永不止步 1985

LeetCode290_290. 单词规律

LeetCode290_290. 单词规律

luoyepiaoxue2014的博客 457

LeetCode 290. 单词规律:同构字符串思路迁移,轻松破解映射难题

本文解析了LeetCode 290题「单词规律」与205题「同构字符串」的关联性,指出两者核心逻辑相同,只需将字符映射改为字符与单词的映射。文章详细拆解了题目规则,包括映射唯一性、反向唯一性和长度匹配性三个核心要求,并通过示例说明解题思路。原代码直接复用同构字符串的双向映射校验方法,使用两个Map分别维护字符到单词和单词到字符的映射关系。优化方案提出用固定长度数组替代其中一个Map,将空间复杂度优化至O(1),同时保持代码可读性。最后给出了极致优化版本,用对象替代Map进一步提升执行效率。全文强调掌握一类题

2401_86788218的博客 1066

Leetcode 每日一题 290.单词规律

题目要求判断字符串s与给定的规律pattern是否完全匹配,这里的匹配是一种双向连接的对应关系,即pattern里的每个字母要和s中的每个非空单词一一对应,且反之亦然。同时,题目对pattern和s的长度、字符组成以及s的单词分隔形式等都做了相应限定,明确这些要求是正确解题的基础。

weixin_73687229的博客 1174

leetcode -290 - 单词规律 -java版

文章目录题目代码 题目 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = “abba”, str = “dog cat cat dog” 输出: true 示例 2: 输入:pattern = ...

lingle1的博客 604

1235813找规律第100个数_LeetCode 图解 | 290 . 单词规律

文 |景禹来源:图解面试算法「ID: LeetCodeAnimation」题目来源于 LeetCode 上第 290 号问题:单词规律。题目难度为 Easy,目前通过率为 42.4% 。题目描述 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存...

weixin_34882814的博客 725
上一篇: <input> 表单元素
下一篇: 基于hexo的个人博客搭建(无坑版,超详细)
ItDaChuang
博客等级 码龄6年 544粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ItDaChuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值