字母异位词分组(java)

题目描述

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单shilie

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

输入: strs = [""]

输出: [[""]]

示例 3:

输入: strs = ["a"]
输出: [["a"]]

java

我的思路

import java.util.ArrayList;
class Solution {public List<List<String>> groupAnagrams(String[] strs) {boolean flag_list[] = new boolean[strs.length];List list = new ArrayList();for(int i=0;i<strs.length;i++){flag_list[i] = true;}String[] str_s = new String[strs.length];for (int i=0;i<strs.length;i++) {char[] chars = strs[i].toCharArray();Arrays.sort(chars);str_s[i]= String.valueOf(chars);}for (int i=0;i<strs.length;i++){if(flag_list[i]){List list_child =new ArrayList();list_child.add(strs[i]);for(int j=i+1;j<strs.length;j++){if(str_s[i].equals(str_s[j])){list_child.add(strs[j]);flag_list[j] =false;}}list.add(list_child);}      }return list;}
}

 

 官方的思路:

import java.util.ArrayList;
class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> hashMap =  new HashMap<>();for (String str : strs) {char[] chars = str.toCharArray();Arrays.sort(chars);String str_s = String.valueOf(chars);if (hashMap.containsKey(str_s)){hashMap.get(str_s).add(str);} else {ArrayList<String> strings = new ArrayList<>();strings.add(str);hashMap.put(str_s, strings);}}List<List<String>> resultList = new ArrayList<>(hashMap.values());return resultList;}
}

查漏补缺:

1、String.valueOf(chars);

由基本数据型态转换成String

String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也是 String.valueOf() 这个参数多载的方法 
有以下几种
(1)String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 
(2)String.valueOf(char c) : 将 char 变量 c 转换成字符串 
(3)String.valueOf(char[] data) : 将 char 数组 data 转换成字符串 
(4)String.valueOf(char[] data, int offset, int count) : 将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串 
(5)String.valueOf(double d) : 将 double 变量 d 转换成字符串 
(6)String.valueOf(float f) : 将 float 变量 f 转换成字符串 
(7)String.valueOf(int i) : 将 int 变量 i 转换成字符串 

由 String 转换成 数字的基本数据型态

要将 String 转换成基本数据型态转 ,大多需要使用基本数据型态的包装类别 
比如说 String 转换成 byte ,可以使用 Byte.parseByte(String s) ,这一类的方法如果无法将 s 分析 则会丢出 NumberFormatException 
(1)byte : Byte.parseByte(String s) : 将 s 转换成 byte 
(2)Byte.parseByte(String s, int radix) : 以 radix 为基底 将 s 转换为 byte ,比如说 Byte.parseByte("11", 16) 会得到 17 
(3)double : Double.parseDouble(String s) : 将 s 转换成 double 
(4)float : Double.parseFloat(String s) : 将 s 转换成 float 
(5)int : Integer.parseInt(String s) : 将 s 转换成 int 
(6)long : Long.parseLong(String s)

2、Arrays

Arrays常用方法(超详解)-CSDN博客

其他补充:

字符串:

1、int length();

2、char charAt(值);

语法 :字符串名.charAt(值);  返回值为 char 类型。从字符串中取出指定位置的字符

String str="淡忘_Java";char c = str.charAt(3);System.out.println("指定字符为:" + c);
运行结果:指定字符为:J

3、char toCharArray();

语法 :字符串名.toCharArray();返回值为 char 数组类型。将字符串变成一个字符数组

String str="世界你好";
char c[] = str.toCharArray(); 
for (int i = 0; i < c.length; i++)
System.out.println("转为数组输出:" + c[i]);运行结果:转为数组输出:世转为数组输出:界转为数组输出:你转为数组输出:好

4、 int indexOf(“字符”)

语法 :字符串名.indexOf(“字符”);字符串名.indexOf(“字符”,值);查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。

 in lastIndexOf(“字符”) 得到指定内容最后一次出现的下标

String str = "I am a good student";int a = str.indexOf('a');//a = 2int b = str.indexOf("good");//b = 7int c = str.indexOf("w", 2);//c = -1int d = str.lastIndexOf("a");//d = 5int e = str.lastIndexOf("a",3);//e = 2

5、toUpperCase(); toLowerCase();字符串大小写的转换

6、String[] split(“字符”)

根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。

String str = "boo:and:foo";
String[] arr1 = str.split(":");
String[] arr2 = str.split("o");
运行结果:arr1  //{ "boo", "and", "foo" }arr2  //{ "b", "", ":and:f" }

7、boolean equals(Object anObject)

语法 :字符串变量名.equals(字符串变量名);  返回值为布尔类型。所以这里用 if 演示。比较两个字符串是否相等,返回布尔值

8、trim();去掉字符串左右空格  
replace(char oldChar,char newChar);新字符替换旧字符,也可以达到去空格的效果一种。

String str = "      淡忘_Java博客         ";  
System.out.println("去掉左右空格后:" + str.trim());运行结果:去掉左右空格后:淡忘_Java博客第二种:
String str = "       淡忘_Java博客         ";  
System.out.println("去掉左右空格后:" + str.replace(" ","")); 运行结果:去掉左右空格后:淡忘_Java博客

9、String substring(int beginIndex,int endIndex)  截取字符串

String str = "123淡忘_Java博客456";System.out.println("截取后的字符为:" + str.substring(0, 3));// 截取0-3个位置的内容   不含3System.out.println("截取后字符为:" + str.substring(2));// 从第3个位置开始截取    含2运行结果:截取后的字符为:123截取后字符为:3淡忘_Java博客456

10、boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值

11、boolean contains(String) 判断一个字符串里面是否包含指定的内容,返回一个布尔值

12、boolean startsWith(String)  测试此字符串是否以指定的前缀开始。返回一个布尔值

13.boolean endsWith(String)  测试此字符串是否以指定的后缀结束。返回一个布尔值

14、上面提到了replace方法

接下继续补充一下 String replaceAll(String,String) 将某个内容全部替换成指定内容,  
String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容

String str = ",,,,,,淡忘博客,,,,, ";System.out.println("改变后:" + str.replaceAll(",", "a"));运行结果:改变后:aaaaaa淡忘博客aaaaa String str = ",,,,,,淡忘博客6不,,,,, ";System.out.println("改变后:" + str.replaceFirst("6不", "很6"));运行结果:改变后:,,,,,,淡忘博客很6,,,,, 

Java ----常用类-CSDN博客

Java String类的常用方法使用方法_java中string常用方法-CSDN博客

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

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

相关文章

解决ValueError: Custom function inv is not defined in `extra_sympy_mappings`.

一、报错问题 ValueError: Custom function inv is not defined in extra_sympy_mappings. You can define it with, e.g., model.set_params(extra_sympy_mappings{inv: lambda x: 1/x}), where lambda x: 1/x is a valid SymPy function defining the operator. You can als…

深度学习基础练习:代码复现transformer重难点

2024/11/10-2024/11/18: 主要对transformer一些比较难理解的点做了一些整理&#xff0c;希望对读者有所帮助。 前置知识&#xff1a; 深度学习基础练习&#xff1a;从pytorch API出发复现LSTM与LSTMP-CSDN博客 【神经网络】学习笔记十四——Seq2Seq模型-CSDN博客 【官方双语】一…

GIS与Web开发结合的产物:WebGIS

WebGIS&#xff0c;其实是利用Web开发技术结合地理信息系统&#xff08;GIS&#xff09;的产物&#xff0c;它是一种通过Internet实现GIS交互操作和服务的最佳途径。 WebGIS通过图形化界面直观地呈现地理信息和特定数据&#xff0c;具有可扩展性和跨平台性。 它提供交互性&am…

PAT甲级 1071 Speech Patterns(25)

&#x1f7e0; 题目大意&#x1f7e2; 思路分析&#x1f535; 代码改进&#x1f7e4; 总结提炼 原题链接 &#x1f7e0; 题目大意 给定一串字符串&#xff0c;要求找出字符串中出现次数最多的单词。 输入 输入一行字符串&#xff0c;字符串长度不超过1048576&#xff0c;所有…

基于单片机的多功能环保宠物窝设计

本设计基于单片机设计的多功能环保宠物窝&#xff0c;利用温湿度传感器、压力传感模块、气味传感模块、红外测温传感器、通信模块、显示模块、清扫部件等&#xff0c;使其能够实现自动检测并调节温湿度、补充宠物食物、检测宠物体温健康并出现异常时进行报警、自动清扫消毒宠物…

Spring AOP面向切面的编程

一、场景设定和问题复现: 1.准备AOP项目:spring-aop-annotation pom.xml <dependencies><!--spring context依赖--><!--当你引入Spring Context依赖之后&#xff0c;表示将Spring的基础依赖引入了--><dependency><groupId>org.springframework…

已有docker增加端口号,不用重新创建Docker

已有docker增加端口号&#xff0c;不用重新创建Docker 1. 整体描述2. 具体实现2.1 查看容器id2.2 停止docker服务2.3 修改docker配置文件2.4 重启docker服务 3. 总结 1. 整体描述 docker目前使用的非常多&#xff0c;但是每次更新都需要重新创建docker&#xff0c;也不太方便&…

【WSL+Kali】进行系统升级时在 Setting up libc6:amd64 (2.37-15) ... 卡住不动

问题描述 当尝试执行以下命令进行系统升级时&#xff1a; sudo apt upgrade升级进程在以下步骤中卡住不动&#xff1a; Setting up libc6:amd64 (2.37-15) ...重启系统后&#xff0c;该问题仍然存在&#xff0c;如下图所示&#xff1a; 原因分析 apt命令是一个用于处理包的…

三、谷粒商城- Spring Cloud Alibaba(3)

&#x1f33b;&#x1f33b; 目录 &#x1f33b;&#x1f33b; 一、SpringCloud Alibaba1.1、SpringCloud Alibaba 简介1.2、SpringCloud Alibaba-Nacos[作为注册中心]1.2.1 将微服务注册到 nacos 中1.2.2 服务注册到 nacos&#xff0c;远程调用 1.3、SpringCloud Alibaba-Naco…

SpringFramework实战指南

1. SpringIoC容器和核心概念 1.1. Spring IoC容器和容器实现 1.1.1. SpringIoc容器接口 BeanFactory 接口提供了一种高级配置机制&#xff0c;能够管理任何类型的对象&#xff0c;是SpringIoC容器标准化超接口&#xff01; ApplicationContext 是 BeanFactory 的子接口。它扩…

【油猴脚本】00013 案例 Tampermonkey油猴脚本, 仅用于学习,不要乱搞。添加UI交互实现自定义,更多页抓取数据(1),JavaScript爬虫HTML+Css+JavaScript编写

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【油…

Debezium-MySqlConnectorTask

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 MySqlConnectorTask&#xff0c;用于读取MySQL的二进制日志并生成对应的数据变更事件 整体架构流程 技术名词解释 数据库模式&#xff08;Database Schema&#xff09; 数据库模式是指数据库中数据的组织结构和定义&…

Linux脚本练习

通过shell脚本分析部署nginx网络服务 1.接收用户部署的服务名称 2.判断服务是否安装 ​ 已安装&#xff1b;自定义网站配置路径为/www&#xff1b;并创建共享目录和网页文件&#xff1b;重启服务 ​ 没有安装&#xff1b;安装对应的软件包 3.测试 判断服务是否成功运…

Windows系统编程 - 进程间通信

文章目录 前言概述发送消息WM_COPYDATADLL共享段文件映射文件映射步骤相关API讲解文件映射 进程间的通信&#xff08;有文件版本&#xff09;文件映射 进程间的通信&#xff08;匿名版本&#xff09; 管道相关API讲解父子之间的匿名进程通信GetStdHandleSTARTUPINFO指定句柄测试…

基于yolov8、yolov5的植物类别识别系统(含UI界面、训练好的模型、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…

1+X应急响应(网络)系统信息收集分析:

系统信息收集分析&#xff1a; 系统启动项和计划任务分析&#xff1a; 系统进程&#xff0c;服务分析&#xff1a; 内存取证&#xff1a; 系统崩溃转储&#xff1a;

智慧环保平台_大数据平台_综合管理平台_信息化云平台

系统原理   智慧环保是新一代信息技术变革的产物&#xff0c;是信息资源日益成为重要生产要素和信息化向更高阶段发展的表现&#xff0c;是经济社会发展的新引擎。   现今&#xff0c;环保信息化建设进入高速发展阶段。在此轮由物联网掀起的信息浪潮下&#xff0c;环境信息…

如何通过电脑监控软件远程监控一台电脑的所有屏幕画面记录

7-1 本教程介绍一个简单的工具&#xff0c;可以安装在电脑中&#xff0c;按设置的时间间隔&#xff0c;自动对屏幕截图保存&#xff0c;并且可以在有网络的其它电脑上远程提取截图文件。 该软件用于自动记录电脑的屏幕画面内容和变化&#xff0c;如果你有这方面的使用场景&am…

深度解读混合专家模型(MoE):算法、演变与原理

假设一个专家团队共同解决复杂问题。每位专家都拥有独特的技能&#xff0c;团队通过高效分配任务实现了前所未有的成功。这就是混合专家&#xff08;Mixture-of-Experts&#xff0c;MoE&#xff09;模型架构背后的基本思想&#xff0c;这种方法允许机器学习系统&#xff0c;特别…

电商微服务项目第一天(品牌管理)

1.BaseTrademarkController&#xff08;品牌管理CRUD&#xff09; /*** 添加品牌* param baseTrademark* return*/PostMapping("baseTrademark/save")public Result<BaseTrademark> save(RequestBody BaseTrademark baseTrademark){baseTrademarkService.save(…