当前位置: 首页 > news >正文

刷题28-有效的变位词

32-有效的变位词
在这里插入图片描述
解题思路:
注意变位词的条件,当两个字符串完全相等或者长度不等时,就不是变位词。

把字符串中的字符映射成整型数组,统计每个字符出现的次数

注意数组怎么初始化:

int [] s1=new int[26]

代码如下:

class Solution {public boolean isAnagram(String s, String t) {if(s.length()!=t.length()||s.equals(t)){return false;}int [] s1=new int[26];int [] t1=new int[26];int l=s.length();for(int i=0;i<l;i++){s1[s.charAt(i)-'a']++;t1[t.charAt(i)-'a']++;}for(int i=0;i<26;i++){if(s1[i]!=t1[i]){return false;}}return true;}
}

33-变位词组

在这里插入图片描述
解题思路:注意返回类型为List<List<String>>,可以理解为列表中套列表
Hashmap中本来没有add用法,Hashset中有add用法,这里使用 map.get(s).add(str)表示添加不重复的元素
另外关于ArrayList<>和LinkedList<>用法:

ArrayList<>为基于数组的大小可变
LinkedList<>是基于双向链表
在这里插入图片描述

菜鸟教程-Java ArrayList
菜鸟教程-Java LinkedList
在这里插入图片描述

在这里插入图片描述
在本题中列表的嵌套ArrayList<>和LinkedList<>都可以实现
代码如下:

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String,List<String>> map=new HashMap<>();for(String str:strs){char[] ch=str.toCharArray();//字符串转化为字符数组Arrays.sort(ch);//对字符数组进行排序String s=new String(ch);//字符数组转化为字符串if(!map.containsKey(s)){map.put(s,new ArrayList<>());//map容器中不存在s的话,创建一个s对应的列表}map.get(s).add(str);//add用法没有具体找到,不允许添加重复的元素,保证了变位词是一组}return new ArrayList<>(map.values());}
}

代码二·

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String,List<String>> map=new HashMap<>();for(String str:strs){char[] ch=str.toCharArray();Arrays.sort(ch);String s=new String(ch);if(!map.containsKey(s)){map.put(s,new LinkedList<>());}map.get(s).add(str);}return new LinkedList<>(map.values());}
}

34-外星语言是否排序
在这里插入图片描述
解题思路:判定一组单词是否也按照给定的字母表的顺序排列,只需要比较两个单词中第一个不相同的字母顺序。
首先要将字母表映射到一维整形数组中,越靠前的字母数组取值越小。
需要注意的特殊情况1.只有一个单词肯定符合要求2.当两个字母前半部分完全一样时,短的单词在前面,比如app在前,apple在后。

class Solution {public boolean isAlienSorted(String[] words, String order) {if(words.length<2) return true;int[] index=new int[order.length()];for(int i=0;i<order.length();i++){index[order.charAt(i)-'a']=i;//为字母表赋顺序,靠前的下标越小}for(int i=0;i<words.length-1;i++){int len=Math.min(words[i].length(),words[i+1].length());for(int j=0;j<len;j++){char c1=words[i].charAt(j);char c2=words[i+1].charAt(j);if(index[c1-'a']<index[c2-'a']){break;}if(index[c1-'a']>index[c2-'a']){return false;}  if(j==len-1&&words[i].length()>len){//判断特殊情况,当前项单词比后项长,并且后项和前项完全重合,判定后项字典序小return false;}}}return true;}
}

相关文章:

刷题28-有效的变位词

32-有效的变位词 解题思路&#xff1a; 注意变位词的条件&#xff0c;当两个字符串完全相等或者长度不等时&#xff0c;就不是变位词。 把字符串中的字符映射成整型数组&#xff0c;统计每个字符出现的次数 注意数组怎么初始化&#xff1a; int [] s1new int[26]代码如下&a…...

JavaWeb中异步交互的关键——Ajax

文章目录1,Ajax 概述1.1 作用1.2 同步和异步1.3 案例1.3.1 分析1.3.2 后端实现1.3.3 前端实现2&#xff0c;axios2.1 基本使用2.2 快速入门2.2.1 后端实现2.2.2 前端实现2.3 请求方法别名3&#xff0c;JSON3.1 概述3.2 JSON 基础语法3.2.1 定义格式3.2.2 代码演示3.2.3 发送异步…...

python爬虫常见错误

python爬虫常见错误前言python常见错误1. AttributeError: WebDriver object has no attribute find_element_by_id1. 问题描述2. 解决办法2. selenium&#xff1a;DeprecationWarning: executable_path has been deprecated, please pass in1. 问题描述2. 解决办法3. 下载了包…...

AI_Papers周刊:第三期

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 2023.02.20—2023.02.26 文摘词云 Top Papers Subjects: cs.CL 1.LLaMA: Open and Efficient Foundation Language Models 标题&#xff1a;LLaMA&#xff1a;开放高效的基础语言模型 作者&#…...

在win7上用VS2008编译skysip工程

在win7上用VS2008编译skysip工程 1. 安装vs2008及相应的补丁包,主要包含以下安装包: 1.1 VS2008TeamSuite90DayTrialCHSX1429243.iso 1.2 VS2008SP1CHSX1512981.iso 1.3 VS90sp1-KB945140-CHS.exe 2. 安装Windows SDK: 6.0.6001.18000.367-KRMSDK_EN.zip 例如安装路径为…...

python 数据结构习题

旋转图像给定一个nn的二维矩阵表示一个图像。将图像顺时针旋转90度。你必须在原地旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。例如&#xff0c;给定matrix[[1&#xff0c;2&#xff0c;3]&#xff0c;[4&#xff0c;5&#x…...

18、MySQL8其它新特性

文章目录1 MySQL8新特性概述1.1 MySQL8.0 新增特性1.2 MySQL8.0移除的旧特性2 新特性1&#xff1a;窗口函数2.1 使用窗口函数前后对比2.2 窗口函数分类2.3 语法结构2.4 分类讲解1 序号函数2 分布函数3 前后函数4 首尾函数5 其他函数2.5 小 结3 新特性2&#xff1a;公用表表达式…...

【Android笔记79】Android之接口请求库Retrofit的介绍及使用

这篇文章,主要介绍Android之接口请求库Retrofit的介绍及使用。 目录 一、Retrofit接口请求库 1.1、什么是Retrofit 1.2、Retrofit的使用 (1)引入依赖...

蓝桥杯 考勤打卡

问题描述 小蓝负责一个公司的考勤系统, 他每天都需要根据员工刷卡的情况来确定 每个员工是否到岗。 当员工刷卡时, 会在后台留下一条记录, 包括刷卡的时间和员工编号, 只 要在一天中员工刷过一次卡, 就认为他到岗了。 现在小蓝导出了一天中所有员工的刷卡记录, 请将所有到岗…...

逻辑回归

逻辑回归 在分类问题中&#xff0c;要预测的变量y为离散值&#xff08;y0~1&#xff09;&#xff0c;逻辑回归模型的输出变量范围始终在 0 和 1 之间。 训练集为 {(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\} {…...

CTFer成长之路之Python中的安全问题

Python中的安全问题CTF 1.Python里的SSRF 题目提示 尝试访问到容器内部的 8000 端口和 url path /api/internal/secret 即可获取 flag 访问url&#xff1a; http://f5704bb3-5869-4ecb-9bdc-58b022589224.node3.buuoj.cn/ 回显如下&#xff1a; 通过提示构造payload&…...

SpringBoot知识快速复习

Spring知识快速复习启动器自动装配ConfigurationImport导入组件Conditional条件装配ImportResource导入Spring配置文件ConfigurationProperties配置绑定Lombok简化开发dev-toolsyaml请求和响应处理静态资源规则与定制化请求处理-Rest映射请求处理-常用参数注解使用请求处理-Ser…...

SpringBoot+React博客论坛系统 附带详细运行指导视频

文章目录一、项目演示二、项目介绍三、项目运行截图四、主要代码一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBootReact框架开发的博客论坛系统。首先&#xff0c;这是一个前后端分离的项目&#xff0c;文章编辑器…...

C++ primer 之 extern

C primer 之 extern什么是声明什么是定义两者有什么区别ertern的作用什么是声明 就是使得名字为程序所知&#xff0c;一个文件如果想使用别处定义的名字就必须包含对那个名字的声明。 什么是定义 负责创建与名字关联的实体。 两者有什么区别 变量声明和声明都规定了变量的…...

Linux 练习二 (VIM编辑器 + GCC编译器 + GDB调试)

文章目录VIM命令思维导图GCC编译器1、GCC编译文件练习2、静态库动态库制作练习将此函数编译成动态库将此函数编译成静态库GCC优化选项 -OnGDB调试命令练习练习一&#xff1a;编写一个程序&#xff0c;通过gdb调试&#xff0c;使用到gdb的b&#xff0c;n&#xff0c;s&#xff0…...

python3 连接数据库 mysql PyMysql

python3PyMysql PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库 &#xff0c; 遵循 Python 数据库 API v2.0 规范 。 PyMySQL 安装 pip install PyMySQLPyMySQL 连接数据库 import pymysql pymysql.Connect(hostlocalhost,port 3306,user root,password **…...

昇腾AI新技能,还能预防猪生病?

国药集团动物保健股份有限公司&#xff08;简称“国药动保”&#xff09;是专业从事动物保健产品研发、生产和销售的国家高新技术企业&#xff0c;是国内少数几家具备新产品原创能力的动物保健企业。其中&#xff0c;猪圆环病毒灭活疫苗等市场份额位居行业前列。 “猪圆环病毒…...

模板方法模式(Template Method)

模式结构图 说明 基本方法是模板方法的组成部分。基本方法分为一下三种&#xff1a; 抽象方法 由抽象类声明&#xff0c;由其具体子类实现。C中就是纯虚函数。 具体方法 由抽象类或具体类声明并实现&#xff0c;子类可以进行覆盖也可以继承。C中是虚函数。 钩子方法 由抽象类…...

C C++ typedef的使用

一、为基本数据类型起别名 typedef int myint; myint x 5; "myint"是"int"的别名&#xff0c;可以使用"myint"来代替"int"声明变量&#xff0c;这个很好理解&#xff0c;但是也很少有人这么用吧。 二、为结构体起别名 …...

Laravel框架03:DB类操作数据库

Laravel框架03&#xff1a;DB类操作数据库一、概述二、数据表的创建与配置三、增删改操作1. 增加信息2. 修改数据3. 删除数据四、查询操作1. 取出基本数据2. 取出单行数据3. 获取一个字段的值4. 获取多个字段的值5. 排序6. 分页五、执行任意的SQL语句一、概述 按照MVC的架构&a…...

AI原生多任务学习效能跃迁路径(SITS 2026工业级调参手册)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生多任务学习&#xff1a;SITS 2026多目标优化实战技巧 在 SITS 2026 挑战赛中&#xff0c;AI 原生多任务学习&#xff08;MTL&#xff09;不再仅是共享底层表征的工程权衡&#xff0c;而是以任务语…...

数字时代的计划性抹杀:从强制升级到生态锁定的技术围剿

1. 数字时代的“计划性报废”&#xff1a;从凯迪拉克到小电驴的隐喻 前几天&#xff0c;我在网上申请一张信用卡&#xff0c;过程堪称一场荒诞剧。银行明明通过邮件联系我&#xff0c;也知道我的账号密码&#xff0c;甚至在我通过了“我不是机器人”的图片验证后&#xff0c;却…...

51单片机项目进阶:给电子秤加上JQ8400语音播报,一线串口控制到底有多方便?

51单片机电子秤语音播报模块深度实战&#xff1a;从JQ8400-FL选型到一线串口控制全解析 当你已经完成基础电子秤项目&#xff0c;能够准确显示重量并计算价格时&#xff0c;如何让这个设备"会说话"&#xff1f;语音交互功能的加入不仅能提升用户体验&#xff0c;更能…...

个人开发者如何利用 Taotoken 管理多个项目的 AI 调用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 个人开发者如何利用 Taotoken 管理多个项目的 AI 调用成本 对于独立开发者或自由职业者而言&#xff0c;同时维护多个小型项目是常…...

终极ComfyUI视频插件指南:从零开始构建AI视频生成工作流

终极ComfyUI视频插件指南&#xff1a;从零开始构建AI视频生成工作流 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 你是否曾梦想过让静态图片“活”起来&#xff0c;或者让文字描述直接变成生动…...

开源AI工具集Muse:模块化架构与创意工作流实践指南

1. 项目概述&#xff1a;一个面向创意工作者的开源AI工具集最近在开源社区里&#xff0c;一个名为myths-labs/muse的项目引起了我的注意。乍一看这个名字&#xff0c;你可能会联想到艺术灵感&#xff0c;但实际上&#xff0c;它是一个定位非常精准的开发者工具集合。简单来说&a…...

保姆级教程:在Windows 10/11上从源码编译Groops(含Qt环境变量避坑指南)

从零构建Groops编译环境&#xff1a;Windows系统下的完整避坑指南 当你在GNSS数据处理领域深耕时&#xff0c;一款强大的开源工具能让你事半功倍。Groops作为重力场恢复和精密定轨的瑞士军刀&#xff0c;其功能强大但编译过程却可能让新手望而却步。本文将带你一步步穿越编译迷…...

西门子S7-1200 PLC编程避坑指南:从振荡电路到浮点数计算,新手最常犯的5个错误

西门子S7-1200 PLC编程实战避坑手册&#xff1a;从逻辑陷阱到数据精度 第一次接触西门子S7-1200 PLC编程时&#xff0c;我对着闪烁的指示灯发呆了半小时——明明按照手册写的梯形图&#xff0c;为什么定时器就是不工作&#xff1f;后来才发现是TON指令的PT参数单位理解错误。这…...

软考 系统架构设计师历年真题集萃(253)

接前一篇文章:软考 系统架构设计师历年真题集萃(252) 第505题 给出关系R(U, F), U = {A,B,C,D,E}, F={A->B, D->C, BC->E, AC->B},求属性闭包的等式成立的是( )。R的候选关键字为( )。 第1空 A. B. C. D. 正确答案:D。 第2空 A. AD B. AB C…...

从灾难电影到现实防疫:技术视角下的系统脆弱性与韧性构建

1. 从科幻到现实&#xff1a;流行病史与灾难电影的预言性对话作为一名长期关注科技与社会交叉领域的写作者&#xff0c;我发现自己近年来越发沉迷于一种特殊的电影类型——灾难片&#xff0c;尤其是那些以病毒大流行为主题的影片。这并非单纯的娱乐消遣&#xff0c;而更像是一种…...