L45---506.相对名次(java)--排序

news2024/11/16 9:46:27

1.题目描述

在这里插入图片描述

2.知识点

(1)String.join(" ", words) 是 Java 中的一个语法,用于将数组或集合中的元素连接成一个单独的字符串,连接时使用指定的分隔符。这里的 " " 是作为分隔符使用的一个空格字符串。

String[] words = {"This", "is", "a", "test"};
//我们希望将这些单词连接成一个字符串,并在每个单词之间插入一个空格:
String result = String.join(" ", words);
//result 将会是:"This is a test"

(2)a.charAt(index) 是 Java 中 String 类的一个方法,用于返回字符串 a 中指定索引位置的字符。

public char charAt(int index)

(3)words 数组经过排序后是 {“This1”, “is2”, “a3”, “sentence4”}。
第一次迭代:

word = "This1";
word.substring(0, word.length() - 1) = "This";
result.append("This").append(" ");

result 变为 "This "。

第二次迭代:

word = "is2";
word.substring(0, word.length() - 1) = "is";
result.append("is").append(" ");

result 变为 "This is "。
第三次迭代:

word = "a3";
word.substring(0, word.length() - 1) = "a";
result.append("a").append(" ");

result 变为 "This is a "。
第四次迭代:

word = "sentence4";
word.substring(0, word.length() - 1) = "sentence";
result.append("sentence").append(" ");

result 变为 "This is a sentence "。
(4)转换为字符串并移除多余的空格:
result.toString().trim() = “This is a sentence”;
StringBuilder对象没有trim()方法,并且trim()方法属于String类,不能直接对StringBuilder对象调用trim()方法。另外,Java中的trim()方法是不可变的,这意味着trim()方法会返回一个新的String对象,而不会修改原始字符串。

3.代码实现

class Solution {
    public String sortSentence(String s) {

    String[] words=s.split(" ");
    Arrays.sort(words,(a,b)->Character.compare(a.charAt(a.length()-1),b.charAt(b.length()-1)));
     // 将排序后的单词连接成一个字符串,中间用空格分隔
    //return String.join(" ",words);
    StringBuilder sb=new StringBuilder();
    for(String word:words)
    {
        sb.append(word.substring(0,word.length()-1)).append(" ");
    }
    return sb.toString().trim();
    }
}

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

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

相关文章

Bond 网卡绑定技术学习

前言: 为了实现网卡的高可用性,需要学习一下 Bond技术 1. 概念 Bond(也被称为链路聚合、端口绑定或接口绑定)是一种网络技术,用于将多个物理网络接口(如以太网接口)组合成一个逻辑接口。这样做…

循环语句大揭秘:while、do-while、for、foreach你都掌握了吗?

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

高质量 HarmonyOS 权限管控流程

高质量 HarmonyOS 权限管控流程 在 HarmonyOS 应用开发过程中,往往会涉及到敏感数据和硬件资源的调动和访问,而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解,才可以在应用开发中提高效率和避免踩坑。 权限管控了…

STM32项目分享:智能门禁锁系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板及元器件图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.c…

使用 stress 命令进行Linux CPU 压力测试

大家好,在现代计算机系统中,对系统性能和稳定性的评估是至关重要的。特别是在服务器环境中,我们需要确保系统能够在高负载情况下稳定运行,以满足用户的需求。而 CPU 是系统中最关键的组件之一,其性能直接影响着整个系统…

探索加密货币:打造Web3项目与企业的新篇章

本文来源香港Web3媒体:Techub News 在数字化浪潮席卷全球的今天,加密货币及Web3项目和企业正成为引领创新的重要力量。作为这一领域的观察者,Mark Beylin深入剖析了如何通过打造人们真正需要的代币,来推动Web3项目的成功与企业的蓬…

电脑开机出现英文字母,如何解决这个常见问题?

电脑开机时出现英文字母的情况通常意味着系统在启动过程中遇到了问题。这些英文字母可能是错误信息、系统提示或BIOS设置问题。通过理解这些信息并采取适当的措施,您可以解决大多数启动问题。本文将介绍三种解决电脑开机出现英文字母问题的方法,帮助您恢…

VSCode搭建开发环境--从PyCharm到拥抱vscode

VSCode搭建开发环境 前言安装扩展全局配置文件单个项目的配置快捷键 前言 最近自己的PyCharm Professional的License过期了,导致没有一个好的开发IDE,于是开始拥抱免费的Visual Studio Code啦。 当然,不可否认的是PyCharm对于开发Python来说…

学习笔记——路由网络基础——路由概述

一、路由概述 1、路由定义与作用 路由(routing)是指导报文转发路径信息,通过路由可以确认转发IP报文的路径。 路由:是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。 路由(routing)的定义是指分…

超详解——Python模块文档——小白篇

目录 1. Unix起始行 示例: 2. 对象和类型 示例: 3. 一切都是对象 示例: 4. 理解对象和引用 示例: 5. 理解对象和类型 示例: 6. 标准类型 示例: 7. 其他内建类型 示例: 8. 类型的类…

本地运行ChatTTS

TTS 是将文字转为语音的模型,最近很火的开源 TTS 项目,本地可以运行,运行环境 M2 Max,差不多每秒钟 4~~5 个字。本文将介绍如何在本地运行 ChatTTS。 下载源码 首先下载源代码 git clone https://github…

【Mac】Media Encoder 2022 for Mac(媒体编码器)V22.6.1软件介绍

软件介绍 Media Encoder 2022 for Mac是一款有着十分丰富硬件设备的编码格式设置和专门设计的预设设置功能的媒体编码器软件,Media Encoder Mac版能够帮助用户导出与特定交付媒体兼容的文件,可以很容易地将项目导出到任何屏幕上的可播放内容中。软件同时…

PVE管理虚拟机节点

今天使用PVE命令安装虚拟机。 ‍ 查看所有虚拟机 qm list 查看所有虚拟机 ​​ 创建虚拟机 qm create 创建虚拟机 qm create 106 --name vm-test --memory 2048 --net0 virtio,bridgevmbr0基础配置 这条命令会创建一个 VM,ID 为 106​,名称为 myvm​…

数据挖掘--挖掘频繁模式、关联和相关性:基本概念和方法

频繁项集、闭项集和关联规则 频繁项集:出现的次数超过最小支持度计数阈值 闭频繁项集:一个集合他的超集(包含这个集合的集合)在数据库里面的数量和这个集合在这个数据库里面的数量不一样,这个集合就是闭项集 如果这个集合还是频繁的,那么他就是极大频…

Leetcode3171. 找到按位与最接近 K 的子数组

Every day a Leetcode 题目来源:3171. 找到按位与最接近 K 的子数组 解法1:位运算 优化: 代码: /** lc appleetcode.cn id3171 langcpp** [3171] 找到按位与最接近 K 的子数组*/// lc codestart class Solution { public:int m…

【应用浅谈】Odoo的库存计价与产品成本(三)

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo的库存(Stock)模块拥有众多功能,其中库存计价是一项非常重要的功能,原生的成本方法分三种:【标准成本】,【平均成本】,【先进先出】&#…

Fastgpt接入Whisper本地模型实现语音输入

前言 FastGPT 默认使用了 OpenAI 的 LLM 模型和语音识别模型,如果想要私有化部署的话,可以使用openai 开源模型Whisper。参考文章 《openai 开源模型Whisper语音转文本模型下载使用》 开源项目地址 : 兼容openai接口api服务 https://gitee.com/taisan/whisper-api 设置安…

一次改SQLMAP的操作

前言 sqlmap这个工具,相信各位大佬们都不陌生,但sqlmap虽好,也时常会有些实际存在但无法注入的地方,这时候就需要我们改它的配置了,今天就以本人遇到的事件进行阐述。 正文 确认注入点 通过一系列测试最终确定这里…

【Java笔记】第10章:接口

前言1. 接口的概念与定义2. 接口的声明与语法3. 接口的实现4. 接口的继承5. 接口的默认方法6. 接口的静态方法7. 接口的私有方法8. 接口的作用9. 接口与抽象类的区别10. 接口在Java集合中的应用结语 上期回顾:【Java笔记】第9章:三个修饰符 个人主页:C_G…

在 Windows 7 中安装 .NET Framework 时遇到错误:无法建立到信任根颁发机构的证书链

当全新安装 Windows 7 SP1 后,在未安装任何补丁,也未进行联网的状态下,安装 .NET Framework 4.6/4.7 或更高的版本时, 应该会遇到错误提示:无法建立到信任根颁发机构的证书链。 解决方法 1.下载证书 地址&#xff1…