说明

算法:Reverse String
LeetCode地址:https://leetcode.com/problems/reverse-string/

题目:
Write a function that reverses a string. The input string is given as an array of characters char[].

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

You may assume all the characters consist of printable ascii characters.

Example 1:

Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]

Example 2:

Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

解题思路

字符串翻转,字符串对称处理,头尾对称位置内容互相调换即可。
时间复杂度为 O(N)。

代码实现

import java.util.Arrays;public class ReverseString {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;left++;right--;}}public static void main(String[] args) {char[] s = {'h','e','l','l','o'};System.out.println("Input: " + Arrays.toString(s));new ReverseString().reverseString(s);System.out.println("Output: " + Arrays.toString(s));}
}

运行结果

Input: [h, e, l, l, o]
Output: [o, l, l, e, h]

代码执行效率

Runtime: 10 ms, faster than 76.17% of Java online submissions for Reverse String.
Memory Usage: 43.1 MB, less than 88.54% of Java online submissions for Reverse String.

总结

字符串逆序,数组逆序都是同一个问题。

代码下载:
https://github.com/zgpeace/awesome-java-leetcode/blob/master/code/LeetCode/src/popular/ReverseString.java

算法:Reverse String(反转字符串)相关推荐

  1. Reverse Vowels of a String (反转字符串中的母音)

    leetcode Reverse Vowels of a String 反转字符串中的母音 一.学习要点: 1.find_first_of:查找与字符串str中某个字符相同的位置,并返回他的第一个出现 ...

  2. 反转字符串java实现_反转字符串的几种实现(Java)

    反转字符串的几种实现(Java) 首先第一种是利用Java中的类库对象进行反转 //第一种 使用Java类库的diam实现反转 public String reverse(String str){ S ...

  3. 【算法】LeetCode:字符串篇

    总结 反转.替换空格 双指针法 翻转单词顺序.左旋转字符串 反转字符串+反转单词 第一个子字符串匹配项.重复子字符串 KMP算法 344 (简单)反转字符串 编写一个函数,其作用是将输入的字符串反转过 ...

  4. 345.反转字符串中的元音字母(Reverse Vowels of a String)

    题目描述 编写一个函数,以字符串作为输入,反转该字符串中的元音字母. 示例 1: 给定 s = "hello", 返回 "holle". 示例 2: 给定 s ...

  5. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  6. 详解反转字符串算法题

    反转字符串,是经常出现的一种算法题,使用C/C++语言时,通常要求在原地进行反转. 最直接的反转整个字符串,使用的是一前一后双指针的方法 进阶的翻转,同要要涉及到两个指针,只是两个指针就行局部反转 进 ...

  7. 初级算法_反转字符串

    LeetCode_初级算法_反转字符串 源 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 ...

  8. 字符串反转python_Python 反转字符串(reverse)的方法小结

    前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容.主要有三种方法: 1.切片法(最简洁的一种) #切片法 def reverse1(): s=input(&quo ...

  9. 用python倒序输出一个字符串_Python 反转字符串(reverse)的方法小结

    前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容.主要有三种方法: 1.切片法(最简洁的一种) #切片法 def reverse1(): s=input(&quo ...

  10. Java基础String类-字符串反转

    定义一个方法,实现字符串反转 键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果cba 示例代码: public class HomeworkTest03 {publi ...

最新文章

  1. Cocos2d-x lua 编译到Android设备
  2. mysql行级锁测试
  3. 软件过程与项目管理(作业一)
  4. mysql错误码 1045_MySql 错误代码 1045
  5. react日期格式化实例
  6. AS 自定义 Gradle plugin 插件 案例 MD
  7. 记录第一次使用linux部署springbootweb项目
  8. HDFS 读取、写入、遍历文件夹获取文件全路径、append
  9. 实习踩坑之路:日期计算错误,Java8API导致Unsupported unit: Seconds,计算当前时间到凌晨00:00的计算方法
  10. 【转载】在使用上perror和strerror应注意的地方
  11. CentOS7.9下实战安装MySQL5.7
  12. 系统服务器更换技术方案,通道设备监控服务器更换 专项工程施工组织方案
  13. 基于Spatial-Temporal Transformer的城市交通流预测
  14. MongoDB——explain执行计划详解
  15. ChatGPT学习研究总结
  16. 3DMAX解析愤怒的小鸟
  17. java uri 是什么_java的URI和URL到底是什么
  18. 区块链投资分歧:蔡文胜麦刚入局 朱啸虎张颖看衰
  19. IT人员转行写小白文可以么?
  20. Servlet之 http://localhost:8080/ 详解

热门文章

  1. 3dmax 渲染关机 脚本_3DMax渲染完自动关机设置
  2. 不支持给定路径的格式_【国考那些事】2021国/省考,申论答题格式,建议收藏!...
  3. hibernate java.util.date 精度_hibernate中java.util.Date类型映射
  4. html做换装游戏,index.html
  5. python远程文件管理系统_如何在Windows上使用Python访问远程文件系统?
  6. 5分钟了解分页的那些事?
  7. day21 re模块
  8. 杭电多校第一场补题-1002 Balanced Sequence
  9. 321. Create Maximum Number
  10. iOS通过ASIHTTPRequest提交JSON数据