代码随想录算法训练营第八天| 344.反转字符串、541. 反转字符串II、 卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

本文主要是介绍代码随想录算法训练营第八天| 344.反转字符串、541. 反转字符串II、 卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

344.反转字符串

在这里插入图片描述

题目链接: 344.反转字符串
文档讲解:代码随想录
状态:so easy

题解:

    public void reverseString(char[] s) {int left = 0, right = s.length - 1;char temp = s[0];while (left <= right) {temp = s[left];s[left] = s[right];s[right] = temp;left++;right--;}}

541. 反转字符串II

在这里插入图片描述

题目链接: 541. 反转字符串II
文档讲解:代码随想录
状态:so easy

思路:每次选取2k个字符,翻转前k个,如果剩余长度不足 k,则反转剩余部分

    public String reverseStr(String s, int k) {// 将字符串转换为字符数组char[] chars = s.toCharArray();int i = 0;// 遍历字符数组,按规则进行反转while (i < s.length()) {// 反转从i到i+k-1的字符,如果剩余字符不足k个,则反转到字符串末尾reverse(chars, i, Math.min(i + k, s.length()) - 1);// 跳过下一个k个字符i += 2 * k;}// 将字符数组转换为字符串并返回return new String(chars);}public void reverse(char[] chars, int start, int end) {// 反转指定范围的字符while (start <= end) {char temp = chars[start];chars[start] = chars[end];chars[end] = temp;start++;end--;}}

卡码网:54.替换数字

在这里插入图片描述

题目链接: 卡码网:54.替换数字
文档讲解:代码随想录
状态:so easy

题解:

    public String replace(String s) {char[] chars = s.toCharArray();StringBuilder sb = new StringBuilder();for (char c : chars) {sb.append(Character.isDigit(c) ? "number" : c);}return sb.toString();}

151.翻转字符串里的单词

在这里插入图片描述

题目链接: 151.翻转字符串里的单词
文档讲解:代码随想录
状态:还可以

双指针题解:

public String reverseWords(String s) {// 去掉字符串两端的空格并将其转换为字符数组char[] chars = s.trim().toCharArray();// front 和 rear 初始化为字符数组的最后一个位置int front = chars.length - 1;int rear = chars.length - 1;// 用于存储结果字符串StringBuilder sb = new StringBuilder();// 从后向前遍历字符数组while (front >= 0) {// 找到当前单词的起始位置while (front >= 0 && chars[front] != ' ') {front--;}// 将单词添加到 StringBuilder 中,并在末尾添加一个空格sb.append(chars, front + 1, rear - front).append(' ');// 跳过单词之间的空格while (front >= 0 && chars[front] == ' ') {front--;}// 更新 rear 到下一个单词的末尾rear = front;}// 将结果转换为字符串并去掉末尾多余的空格return sb.toString().trim();}

使用split+正则:

    public String reverseWords(String s) {// 使用StringBuilder构建最终结果StringBuilder sb = new StringBuilder();// 使用正则表达式分割字符串为单词数组String[] strings = s.split("\\s+");// 从数组末尾开始,遍历单词并添加到StringBuilder中for (int i = strings.length - 1; i >= 0; i--) {sb.append(strings[i]).append(' ');}// 去除StringBuilder末尾的空格并返回结果字符串return sb.toString().trim();}

卡码网:55.右旋转字符串

在这里插入图片描述

题目链接: 55.右旋转字符串
文档讲解:代码随想录
状态:so easy

题解:

    // 定义一个名为rightHand的方法,该方法接受一个字符串s和一个整数k作为参数public String rightHand(String s, int k) {// 创建一个StringBuilder对象用于构建新的字符串StringBuilder sb = new StringBuilder();// 将字符串s转换为字符数组char[] chars = s.toCharArray();// 使用StringBuilder的append方法,先截取字符数组chars的最后k个字符// 然后截取字符数组chars的前chars.length - k个字符,并将它们拼接起来sb.append(chars, chars.length - k, k).append(chars, 0, chars.length - k);// 返回拼接后的字符串return sb.toString();}

这篇关于代码随想录算法训练营第八天| 344.反转字符串、541. 反转字符串II、 卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by