代码随想录算法训练营|344.反转字符串、541. 反转字符串II、54.替换数字

344.反转字符串

题目

参考文章

思路:本题的运用双指针的方式,掉换两个头尾两个元素,然后指针收缩再继续掉换,这里无论字符串大小是否为奇偶,都是可以判断出来的

代码:

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

541. 反转字符串II

题目

参考文章

思路:从题目可以知道,每2k个字符中反转前k个字符,所以每次循环得一次取到2k个字符,然后开始下标为当前i值,而末尾下标就是取:字符串最大长度和从start开始的第k个长度两者的最小值。然后循环交换值,

代码:

class Solution {public String reverseStr(String s, int k) {char[] ch=s.toCharArray();for(int i=0;i<ch.length;i+=2*k){int start=i;int end=Math.min(ch.length-1,start+k-1);while(start<end){char temp=ch[start];ch[start]=ch[end];ch[end]=temp;end--;start++;}}return new String(ch);}
}

54.替换数字 

题目

参考文章

思路:判断字符串s中是否有数值出现,如果有数值就len+5(这里加5是因为本身字符串的数值占一个位置,而number是六个位置,最终加了五个位置上去),这里len最终存储的是加入number后的长度。然后设置要给res数组,存储最终加入number后的字符串;这里我们是用从后往前的方式加入元素,大大减少了工作量。先把原来字符串s中的元素加入到数组res中,然后循环,设置i和j,i指向旧数组的末尾位置,j指向的是新数组的位置,判断当前位置是否是数值,如果是,则新数组位置的j--,并存入number元素中的r字符,以此类推;如果不是数值,就直接把该位置的的i赋值给当前j所在的位置,然后i--,这里j是在数组中实现了j--,故在for循环上不显示。最后打印res即可

代码:

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.next();int len = s.length();for(int i = 0;i < s.length();i++){if(s.charAt(i) >= 0 && s.charAt(i) <= '9'){len += 5;}}char[] res = new char[len];for(int i = 0;i < s.length();i++){res[i] = s.charAt(i);}for(int i = s.length()-1,j = len-1;i >= 0;i--){if('0' <= res[i] && res[i] <= '9'){res[j--] = 'r';res[j--] = 'e';res[j--] = 'b';res[j--] = 'm';res[j--] = 'u';res[j--] = 'n';}else{res[j--] = res[i];}}System.out.println(res);}
}

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

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

相关文章

Java项目实战II基于Java+Spring Boot+MySQL的网上租贸系统设计与实现(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 "随着…

面试-设计模式

策略模式 定义了一组算法&#xff0c;分别封装起来&#xff0c;这些算法直接可以相互替换 设计模式的开闭原则&#xff1a;对修改关闭&#xff0c;对扩展开放 装饰模式 将某种算法作为一个装饰品添加到对象身上&#xff0c;同时可以自由穿戴更换装饰品 两个主要的角色&…

游戏淡入淡出效果

一、制作UIdocument 注&#xff1a;是全黑的&#xff1b;并且Picking Mode设置为Igore 通过调节display中的值&#xff0c;实现淡入淡出效果 二、建立空物体 增加uiDocument 拖入相关的物体 注&#xff1a;层级必须设置为最高&#xff0c;此处为20&#xff0c;这个效果必须遮…

MySQL深入原理

MySQL深入原理 索引、事务、日志原理、InnoDB引擎、缓存、锁 有4个数据库是属于MySQL自带的系统数据库&#xff1a; ​ mysql MySQL 系统自带的核心数据库&#xff0c;它存储了MySQL的用户账户和权限信息&#xff0c;一些存储过程、事件的定义信息&#xff0c;一些运行过程中…

波分技术基础 -- Liquid OTN

什么是Liquid OTN 传统OTN技术主要定位于骨干网和城域网应用&#xff0c;主要用于承载大于1Gbits/s速率业务&#xff0c;在OTN下沉到城域/接入网后&#xff0c;面临如下问题&#xff1a;管道弹性不足&#xff08;最小管道ODU0&#xff09;、连接数少、带宽调整不够灵活等挑战。…

yolov5/8/9模型在COCO分割数据集上的应用【代码+数据集+python环境+GUI系统】

yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 1.COCO数据集介绍 COCO数据集&#xff0c;全称为Microsoft Common Objects in Context&#xff0c;是微软于2014年出资标注的…

更换硬盘后,电脑装完系统进不去?或PE能识别硬盘但开机/启动/BIOS识别不了硬盘解决办法

由于现在的电脑主板&#xff0c;默认都是UEFI启动&#xff0c;硬盘只有使用GUID分区表&#xff0c;主板BIOS才找得到系统引导&#xff01; 而当我们拿到一块新硬盘&#xff0c;使用分区工具默认类型分区&#xff0c;默认是MBR类型&#xff0c;所以这种分区的硬盘&#xff0c;B…

解决Windows10关闭UAC后,开机启动项不生效的问题

Windows10关闭UAC后&#xff0c;会发现启动项不生效。 运行输入gpedit.msc打开组策略&#xff08;家庭版没有组策略功能&#xff09; 依次展开计算机配置-》Windows设置-》安全设置-》本地策略-》安全选项-》用户账户控制&#xff1a;以管理员批准模式运行所有管理员&#xf…

VGG16模型实现新冠肺炎图片多分类

1. 项目简介 本项目的目标是通过深度学习模型VGG16&#xff0c;实现对新冠肺炎图像的多分类任务&#xff0c;以帮助医疗人员对患者的影像进行快速、准确的诊断。新冠肺炎自爆发以来&#xff0c;利用医学影像如X光和CT扫描进行疾病诊断已成为重要手段之一。随着数据量的增加&am…

ETCD学习使用

一、介绍 etcd&#xff08;分布式键值存储&#xff09;是一个开源的分布式系统工具&#xff0c;用于可靠地存储和提供键值对数据。etcd 通常通过 HTTP 或 gRPC 提供 API&#xff0c;允许应用程序通过简单的接口与其交互。由于其可靠性和稳定性&#xff0c;etcd 在构建可扩展、分…

【Linux笔记】如何将内容从一个文件复制到另一个文件

比如&#xff1a;将文件tmp_file.txt中的部分数据&#xff0c;复制到file01.txt中去 tmp_file.txt文中内容&#xff1a; file01.txt为空文档 一、使用vi编辑器 I、文件中直接使用:e 目标文件进行切换文件复制 1、打开被复制文件 vi tmp_file.txt 2、进入一般命令模式 默认情况为…

电机学习-有感BLDC开环控制(六步换相)

文章目录 1. 简介2. 六步换向控制3. 机械角度和电角度4.转子位置获取5.霍尔传感器读取测试6.速度开环控制6.1 PWM设置6.2死区时间 1. 简介 BLDC的反电动势一般是梯形的反电动势&#xff0c;所以采用方波控制。如图2-1所示&#xff0c;是一个简化的内转子无刷直流电机。我们通过…

Remix在SPA模式下,出现ErrorBoundary错误页加载Ant Design组件报错,不能加载样式的问题

Remix是一个既能做服务端渲染&#xff0c;又能做单页应用的框架&#xff0c;如果想做单页应用&#xff0c;又想学服务端渲染&#xff0c;使用Remix可以降低学习成本。最近&#xff0c;在学习Remix的过程中&#xff0c;遇到了在SPA模式下与Ant Design整合的问题。 我用Remix官网…

自动化立体仓库与堆垛机单元的技术参数

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是一份自动化立体仓库与堆垛机单…

ViT模型

Vision Transformer (ViT) 论文地址&#xff1a;https://arxiv.org/abs/2010.11929 输入到MLP类别分类器中的特征只有类别token 经过N层transformer编码器处理后的特征的维度与输入前相同&#xff0c;均为[197&#xff0c;768]&#xff0c;我们只使用列表切片的方式提取出类…

成都睿明智科技有限公司抖音电商新蓝海领航者

在当今这个短视频与直播电商风起云涌的时代&#xff0c;抖音凭借其庞大的用户基数和高度活跃的社区氛围&#xff0c;已成为众多品牌与商家争相入驻的新蓝海。而在这场电商盛宴中&#xff0c;成都睿明智科技有限公司凭借其专业的服务、创新的策略和深厚的行业洞察力&#xff0c;…

MySQL(日志)

日志 日志分为三种&#xff1a; undo log &#xff08;回滚日志&#xff09;&#xff1a;用于事务回滚和MVCC redo log &#xff08;重做日志&#xff09;&#xff1a;用于故障恢复 binlog &#xff08;归档日志&#xff09;&#xff1a;用于数据备份和主从复制 undo log undo…

【MySQL】字符集与Collation

今天做项目&#xff0c;突然发现&#xff0c;项目中使用的MySQL的库排序规则是 utf8mb4_general_ci&#xff0c;而我自己用的MySQL8默认库规则是utf8mb4_0900_ai_ci&#xff0c;于是想要弄清楚 出处&#xff08;写的非常详细&#xff09;&#xff1a;mysql设置了utf8mb4&#x…

华为HarmonyOS地图服务 12 - 如何在地图指定位置增加气泡?

场景介绍 本章节将向您介绍如何在地图的指定位置添加气泡。 您可以通过气泡在道路上指定位置显示测速、拥堵情况。气泡支持功能: 支持设置四个方向的图标(传入的图标宽高需要相同)。支持设置图标碰撞规则。支持设置当前气泡的候选坐标段,通过计算使气泡在最佳的线段位置上…

C++速通LeetCode中等第16题-环形链表II(快慢指针)

算法思路&#xff08;主要是数学推导&#xff09;&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode *detectCycle(ListNo…