算法笔记|Day7字符串

算法笔记|Day7字符串

  • ☆☆☆☆☆leetcode 344.反转字符串
    • 题目分析
    • 代码
  • ☆☆☆☆☆leetcode 541. 反转字符串II
    • 题目分析
    • 代码
  • ☆☆☆☆kamacoder 54. 替换数字(待补充)
    • 题目分析
    • 代码

☆☆☆☆☆leetcode 344.反转字符串

题目链接:leetcode 344.反转字符串

题目分析

1.定义两个指针(索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素;
2.时间复杂度为O(n),空间复杂度为O(1)。

代码

1.常见的交换数值
class Solution {public void reverseString(char[] s) {int i=0,j=s.length-1;while(i<j){char temp=s[i];s[i]=s[j];s[j]=temp;i++;j--;}}
}
2.通过位运算
class Solution {public void reverseString(char[] s) {int i=0,j=s.length-1;while(i<j){s[i]^=s[j];s[j]^=s[i];s[i]^=s[j];i++;j--;}}
}

提示:交换元素还可以采用位运算的方法,即使用异或运算符(^),它的作用是对两个二进制数的每一位进行逻辑异或,即相同为0,不同为1,异或运算有以下性质:
①任何数和自己异或都等于0,即x ^ x = 0
②任何数和0异或都等于自己,即x ^ 0 = x
③异或运算满足交换律和结合律,即x ^ y = y ^ x,(x ^ y) ^ z = x ^ (y ^ z)
故y=xyx,x=yxy.

☆☆☆☆☆leetcode 541. 反转字符串II

题目链接:leetcode 541. 反转字符串II

题目分析

1.在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k ,在此基础上判断每次反转的区间(是否到达末尾);
2.时间复杂度为O(n),空间复杂度为O(1)。

代码

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

☆☆☆☆kamacoder 54. 替换数字(待补充)

题目链接:kamacoder 54. 替换数字

题目分析

代码


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

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

相关文章

3DMAX神经网络插件Neuron使用方法详解

3DMAX神经网络插件Neuron使用方法 3DMAX神经网络插件Neuron&#xff0c;从一系列样条曲线创建具有分支结构的几何体。适用于如神经网络、血管、树枝等形状的3D建模。 【适用版本】 3dMax2016及更高&#xff08;不仅限于此范围&#xff09; 【安装方法】 Neuron插件无需安装&a…

Linux初学基本命令

linux文件目录 1、bin->usr/bin binary存放命令 所有账户可以使用 Linux可以执行的文件&#xff0c;我们称之为命令command 2、boot 存放系统启动文件 3、dev device存放设备文件 4、etc 存放配置文件的目录 configration files 5、home home家目录 存…

windows 暂停更新

使用windows 系统的伙伴都深受其扰&#xff0c;动不动就要强制更新&#xff0c;并且无法长时间关闭更新。这里推荐一个工具来禁止更新。越来越多的工程师可能会逐渐放弃windows ,真的太冗杂了&#xff0c;linux 的桌面和命令行越来越好用。 下载地址 https://github.com/WereD…

Renesa Version Board开发RT-Thread 之I2C驱动应用(SHT20)

目录 概述 1 硬件接口介绍 1.1 Version Board上的I2C硬件接口 1.2 SHT20 1.2.1 SHT20简介 1.2.2 SHT-20模块电路 2 软件实现 2.1 软件版本信息 2.2 RT-Thread Studio创建项目 2.3 FSP配置I2C接口 2.4 使能Sensor驱动 3 RT-Thread驱动架构 3.1 接口函数 3.1.1 …

增量学习中Task incremental、Domain incremental、Class incremental 三种学习模式的概念及代表性数据集?

1 概念 在持续学习领域&#xff0c;Task incremental、Domain incremental、Class incremental 是三种主要的学习模式&#xff0c;它们分别关注不同类型的任务序列和数据分布变化。 1.1 Task Incremental Learning (Task-incremental) 任务增量学习&#xff0c;也称为任务增…

spring 中包自动扫描之 component-scan 解析

在 spring 中&#xff0c;为简化 bean 的配置&#xff0c;在 spring-context 模块下提供了包的自动扫描功能&#xff0c;将配置的包及其子包下的所有符合条件的类都注册到 BeanFactory 中。下面来看下具体是怎么实现的。 配置 <context:component-scan base-package"…

.NET 一款获取主流浏览器存储密码的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

27.jdk源码阅读之ConcurrentLinkedDeque

1. 写在前面 ConcurrentLinkedDeque 是 Java 中一个高效、线程安全的双端队列&#xff08;Deque&#xff09;&#xff0c;使用无锁算法&#xff08;CAS 操作&#xff09;来保证线程安全性。由于其复杂的实现和广泛的应用场景&#xff0c;它常常成为面试中的重点考察对象。不知道…

【C++题解】1069. 字符图形5-星号梯形

问题&#xff1a;1069. 字符图形5-星号梯形 类型&#xff1a;嵌套循环、图形输出 题目描述&#xff1a; 打印字符图形。 输入&#xff1a; 一个整数&#xff08; 0<n<10 &#xff09;。 输出&#xff1a; 一个字符图形。 样例&#xff1a; 输入&#xff1a; 3输…

C#体检系统源码,医院健康体检系统PEIS,C#+VS2016+SQLSERVER

体检中心/医院体检科PEIS系统源码&#xff0c;C#健康体检信息系统源码&#xff0c;PEIS源码 开发环境&#xff1a;C/S架构C#VS2016SQLSERVER 2008 检前&#xff1a; 多种预约方式网站预约、电话预约、微信平台预约及检前沟通&#xff0c;提前制作套餐&#xff0c;客人到达体检…

机器学习(二十三):决策树和决策树学习过程

一、决策树 下面是数据集&#xff0c;输入特征是耳朵形状、脸形状、是否有胡子&#xff0c;输出结果是是否为猫 下图是决策树&#xff0c;根据耳朵形状、脸形状、是否有胡子这几个特征&#xff0c;建立决策树&#xff0c;从根节点一步步预测结果。 上图中&#xff0c;每一个椭…

C++ //练习 16.8 在第97页的“关键概念”中,我们注意到,C++程序员喜欢使用!=而不喜欢<。解释这个习惯的原因。

C Primer&#xff08;第5版&#xff09; 练习 16.8 练习 16.8 在第97页的“关键概念”中&#xff0c;我们注意到&#xff0c;C程序员喜欢使用!而不喜欢<。解释这个习惯的原因。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释 …

easyui-datebox 只显示月份选择,默认开启月份,隐藏日期选择框

如果你使用 ​​easyui-datebox​​​ 并希望隐藏日期选择框,只显示月份选择,可以通过一些自定义代码来实现。虽然 EasyUI 没有直接提供这种功能,但可以通过自定义 ​​formatter​​​ 和 ​​parser​​​ 方法,以及修改 ​​onShowPanel​​ 事件来实现这个功能。 以下…

爬虫基础之HTTP基本原理

引言 在Web开发中&#xff0c;爬虫&#xff08;Web Crawler&#xff09;扮演着重要的角色&#xff0c;它们能够自动浏览万维网并抓取信息。这些程序通过遵循HTTP&#xff08;超文本传输协议&#xff09;协议与服务器进行通信&#xff0c;从而获取网页内容。了解HTTP基本原理对…

wkt格式文件详解(包含应用示例)

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

揭秘CISA:不只是证书,更是信息安全领域的国际通行证

CISA&#xff08;Certified Information Systems Auditor&#xff09;&#xff0c;即国际注册信息系统审计师&#xff0c;是信息系统审计、控制与安全等专业领域中备受认可的认证。它不仅是一张证书&#xff0c;更是信息安全领域的国际通行证。以下是对CISA的全面揭秘&#xff…

Apollo:目录分析, test ok

apollo: Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 - Gitee.comhttps://github.com/ApolloAuto/apolloapollo 目录名称目录作用cyber消息中间件,替换ros作为消息层…

Vscode报错:line too long (84 > 79 characters)

原因&#xff1a;不允许一行超过79个字母&#xff0c;但是该行代码超出该范围。 参考博客&#xff1a;解决Vs CodeFlake8 报错line too long (108 &#xff1e; 79 characters)Flake8(E501)_flake8 line too long-CSDN博客

Javascript前端面试基础(八)

window.onload和$(document).ready区别 window.onload()方法是必须等到页面内包括图片的所有元素加载完毕后才能执行$(document).ready()是DOM结构绘制完毕后就执行&#xff0c;不必等到加载完毕 window.onload 触发时机&#xff1a;window.onload 事件会在整个页面&#xf…

C++中的push_back

在C中&#xff0c;push_back 是 std::vector 类的一个成员函数&#xff0c;用于将元素添加到向量的末尾。它会将给定的元素复制或移动到向量的末尾&#xff0c;并自动调整向量的大小以容纳新的元素。 示例 #include <iostream> #include <vector>int main() {std…