当前位置: 首页 > news >正文

【LeetCode 算法】Reverse String 反转字符串

文章目录

  • Reverse String 反转字符串

Reverse String 反转字符串

问题描述:

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

1 < = s . l e n g t h < = 1 0 5 s [ i ] i s a p r i n t a b l e a s c i i c h a r a c t e r . 1 <= s.length <= 10^5\\ s[i] is a printable ascii character. 1<=s.length<=105s[i]isaprintableasciicharacter.

分析

呃,反转字符串,还能说啥呢,看代码吧。

入门级方法,就是新开一个数组,从右向左依次填入原数组的从左向右的元素,时间复杂度 O ( N ) O(N) O(N),空间复杂度 O ( N ) O(N) O(N).

进阶的方法,就是双指针swap,空间可以降低到 O ( 1 ) O(1) O(1).

代码

双指针

public void reverseString(char[] s) {int n = s.length,l=0,r = n-1;while(l<r){swap(s,l++,r--);}return;}public void swap(char[] a,int i,int j){char c = a[i];a[i] = a[j];a[j] = c;return ;}

时间复杂度 O ( N ) O(N) O(N)

空间复杂度 O ( 1 ) O(1) O(1)

Tag

Two Pointers

String

http://www.lryc.cn/news/113329.html

相关文章:

  • linux sysctl.conf 常用参数配置
  • 【stm32】初识stm32—stm32环境的搭建
  • Spring Boot3.0基础篇(二):Web 开发
  • 【WebRTC---源码篇】(三:一)音频轨
  • POM文件总体配置详细说明
  • 【项目 计网3】Socket介绍 4.9字节序 4.10字节序转换函数
  • Spring Security 和 Apache Shiro 登录安全架构选型
  • 如何恢复已删除的 PDF 文件 - Windows 11、10
  • 服务器数据恢复-raid5同步过程中又有一块磁盘报警的数据恢复案例
  • 解密Redis:应对面试中的缓存相关问题2
  • HTTP——八、确认访问用户身份的认证
  • 解决word打字卡顿问题的方法
  • python elasticsearch update by query
  • Linux搭建pikachu靶场(以centos为例)
  • git clone 登录 github
  • 迭代器模式(C++)
  • ES智能推荐
  • 【Rust】Rust学习 第五章使用结构体组织相关联的数据
  • EtherCAT转Profinet网关连接西门子PLC与凯福科技总线步进驱动器通讯
  • 秋招算法备战第39天 | 62.不同路径、63. 不同路径 II
  • Docker网络模型使用详解(2)Docker网络模式
  • Docker DCT
  • 【owt】erzio的handler和pipeline
  • Dockerfile构建mysql
  • QT-如何生成唯一ID
  • Go语言基础: Switch语句、Arrays数组、Slices切片 详细教程案例
  • 从URL取值传给后端
  • API接口用例生成器
  • 最新AI创作系统ChatGPT源码V2.5.8/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成!
  • 【Vxworks】映射物理地址为虚拟地址,并获取此地址的存放值