【LeetCode】290. 单词规律
这里写自定义目录标题
- 2023-8-30 09:34:23
290. 单词规律
2023-8-30 09:34:23
这道题目,我是根据 205. 同构字符串
的思路一样,都转化为另外一个第三方的字符串,在比较翻译过后的语句是不是一样的。
class Solution {public boolean wordPattern(String pattern, String s) {String[] s1 = s.split(" ");return helper1(pattern).equals(helper2(s1));}private String helper1(String str){int[] temp = new int[26];StringBuilder result = new StringBuilder();for(int i = 0; i < str.length(); i++){int c = str.charAt(i) - 'a';if(temp[c] == 0){temp[c] = i + 1;}result.append(temp[c]);}return result.toString();}private String helper2( String[] s1){Map<String, Integer> map = new HashMap<String, Integer>();StringBuilder result = new StringBuilder();for(int i = 0 ; i < s1.length; i++){if(!map.containsKey(s1[i])){map.put(s1[i], i +1);}result.append(map.get(s1[i]));}return result.toString();}
}

看看官方的解法:
class Solution {// public boolean isIsomorphic(String s, String t) {// return isIsomorphicHelper(s).equals(isIsomorphicHelper(t));// }public boolean wordPattern(String pattern, String str) {String[] words = str.split(" ");//字符和单词是互相映射,数量必须相等if (words.length != pattern.length()) {return false;}Map<Object, Integer> map = new HashMap<>();for (Integer i = 0; i < words.length; i++) {/*如果key不存在,插入成功,返回null;如果key存在,返回之前对应的value。以pattern = "abba", str = "dog cat cat dog"为例,第1次:map.put('a',0)返回null,map.put("dog",0)返回null,两者相等;第2次:map.put('b',1)返回null,map.put("cat",1)返回null,两者相等;第3次:map.put('b',2)返回1,map.put("cat",2)返回1,两者相等;第4次:map.put('a',3)返回0,map.put("dog",3)返回0,两者相等,结果为 true。以pattern = "abba", str = "dog cat cat fish"为例,第1次:map.put('a',0)返回null,map.put("dog",0)返回null,两者相等;第2次:map.put('b',1)返回null,map.put("cat",1)返回null,两者相等;第3次:map.put('b',2)返回1,map.put("cat",2)返回1,两者相等;第4次:map.put('a',3)返回0,map.put("fish",3)返回null,两者不相等,结果为 false。*//** 为什么 Integer 在这里用的是 != 进行判断 ?* 1. 会返回null值,如果用equals进行判断,会产生空指针异常* 2. 理想状态的就是 Integer 的值在 0 - 25 之间进行判断,这一部分也是程序上需要返回true的情况*/if (map.put(pattern.charAt(i), i) != map.put(words[i], i)) {return false;}}return true;}
}
相关文章:
【LeetCode】290. 单词规律
这里写自定义目录标题 2023-8-30 09:34:23 290. 单词规律 2023-8-30 09:34:23 这道题目,我是根据 205. 同构字符串 的思路一样,都转化为另外一个第三方的字符串,在比较翻译过后的语句是不是一样的。 class Solution {public boolean wordP…...
研磨设计模式day12迭代器模式
目录 场景 解决方案 解决思路 代码示例 代码改造 Java实现迭代器 迭代器模式的优点 思考 何时选用 场景 大公司收购了一个小公司,大公司的工资系统采用List来记录工资列表,而小公司是采用数组,老板希望通过决策辅助系统来统一查看…...
Python3不支持sqlite3的解决方法
先贴报错: >>> import sqlite3 Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/local/lib/python3.10/sqlite3/__init__.py", line 57, in <module>from sqlite3.dbapi2 impor…...
Qt应用开发(基础篇)——消息对话框 QMessageBox
一、前言 QMessageBox类继承于QDialog,是一个模式对话框,常用于通知用户或向用户提出问题并接收答案。 对话框QDialog QMessageBox消息框主要由四部分组成,一个主要文本text,用于提醒用户注意某种情况;一个信息文本informativeTex…...
ETC reset
ETC重新激活 换前挡风玻璃膜会把ETC设备拿下来,需要到【ETC服务中心】重新【粘上去】,另外需要工作人员用手持终端【重新激活】 ETC 背面有个 【白色】开关小柱子,一旦拆下来就失效,因为这个开关弹出来了 截面图看就是这样的&…...
2023年8月30日-[SWPUCTF 2021 新生赛]jicao
<?php highlight_file(index.php); include("flag.php"); $id$_POST[id]; $jsonjson_decode($_GET[json],true); if ($id"wllmNB"&&$json[x]"wllm") {echo $flag;} ?> 包含了flag.php文件,设定了一个POST请求的id和…...
MariaDB数据库服务器
目录 一、什么是数据库? 二、什么是关系型数据库? 三、数据库字符集和排序规则是什么? 四、常用数据类型 五、Mariadb数据库相关配置案例 一、什么是数据库? 数据库(DB)是以一定方式长期存储在计算机硬盘内…...
Nat. Mach. Intell 2023 | DrugBAN+:域自适应的可解释双线性插值网络改进药物-靶标预测(DTI)
DrugBAN:Interpretable bilinear attention network with domain adaptation improves drug–target prediction 论文:Interpretable bilinear attention network with domain adaptation improves drug–target prediction | Nature Machine Intellige…...
org.springframework.web.reactive.function.server.ServerResponse设置响应头
记录一下 String host serverRequest.uri().getHost();Consumer<HttpHeaders> headersConsumer consumer -> {consumer.setAccessControlAllowOrigin(host);consumer.setAccessControlAllowCredentials(true);consumer.set("Access-Control-Allow-Headers"…...
高频面试题:如何分别用三种姿势实现三个线程交替打印0到100
最近面试遇到的一道题,需要三个线程交替打印0-100,当时对多线程并不是很熟悉因此没怎么写出来,网上搜了之后得到现 synchronized wait/notifyAll 实现思路:判断当前打印数字和线程数的取余,不等于当前线程则处于等待…...
【git】Idea撤回本地分支、或远程分支提交记录的各种实际场景操作步骤
文章目录 idea撤回本地分支、远程分支场景操作集合场景1:要撤回最后一次本地分支的提交实现效果:操作步骤: 场景2:要撤回最后一次远程分支的提交有撤销记录的:实现效果:操作步骤: 无撤销记录的&…...
FPGA SPI 驱动程序
1.引言 此驱动程序已经完成很久了,花了2个星期的时间,主要是提升程序运行的效率。最近整理文件的时候又看到了,记录一下。 2.程序框架分解 module adc7254_Ctrl(input sys_clk, //system clkc 50Minput re…...
【实战】十一、看板页面及任务组页面开发(五) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十七)
文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...
mac m1 docker 安装kafka和zookeeper
获取本地ip地址 ifconfig en0 192.168.0.105. 下面的ip都会使用到 1、拉取镜像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 2、启动容器 启动 zookeeper docker run -d --name zookeeper -p 2181:2181 映射 3、 启动 kafka 注意ÿ…...
宏观经济和风电预测误差分析(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
GO学习之 搜索引擎(ElasticSearch)
GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…...
Sentinel —实时监控
Sentinel 提供对所有资源的实时监控。如果需要实时监控,客户端需引入以下依赖(以 Maven 为例): <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-transport-simple-http</artif…...
接口优化通用方案
目录 批量异步、回调缓存预取池化并行锁粒度索引大事务海量数据 批量 批量思想:批量操作数据库 优化前: //for循环单笔入库 for(TransDetail detail:transDetailList){ insert(detail); } 优化后: batchInsert(transDetailList); 异步、回…...
用Visual Studio 2022的.map文件来查看C++变量在内存中的布局情况
先看几个实例 代码1 #include <iostream> int data_arr[32768]; int main() {data_arr[1] 11;std::cout<<"data_arr[1]: " << data_arr[1] << std::endl;return data_arr[1]; } 上述代码在Win10 X64,MSVC Release模式下编译&…...
使用代理突破浏览器IP限制
一、实验目的: 主要时了解代理服务器的概念,同时如何突破浏览器IP限制 二、预备知识: 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站,特别是它具有一个cac…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
