「每日一题」反转字符串

createh52个月前 (04-09)技术教程22

题目:

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

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

解题(Java):

class Solution {
    public void reverseString(char[] s) {
        //双指针,左指针从0开始,右指针从数组结尾开始,左右指针对应的数字互换位置,然后同时向中间位置移动,直到左指针>=右指针
        int left = 0,right = s.length - 1;
        while(left < right){
            char temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            left ++;
            right --;
        }
    }
}

思路解析:

使用双指针解题,分析题目可以得出:反转字符其实就是第一个和最后一个互换位置,第二个和倒数第二个互换位置,以此类推,所以可以定义两个指针,左指针从下标0开始,依次向右+1,右指针从末尾开始,依次向左-1,每次都调换指针对应的字符,直到左指针>=右指针(为什么是大于等于呢?当字符串长度为奇数时,左指针=右指针的时候可以结束计算;当字符串长度为偶数时,左指针>右指针的时候可以结束计算)

相关文章

实现字符串的反转。如:abcd 输出dcba

public class StringReverse { // 方法1: 使用 StringBuilder 的 reverse() 方法 (推荐,高效简洁) public stati...

剑指Offer (十五):反转链表(Java版)

对于一个单向链表来说,上一条数据只能指向下一条数据(如下图),那我们想反转这个链表,变成下图这个样子,怎么实现呢?1->2->3->4->5 5->4->...

深度理解Spring IOC(控制反转)

一、IOC概述Inverse Of Controll即为控制反转,简称IOC 。简单来说,IOC反转了依赖关系的满足方式,由之前的自己创建依赖对象,变为由工厂推送。(变主动为被动,即反转)它解决了具有...

Java面试高频算法题总结:从入门到精通

Java面试高频算法题总结:从入门到精通大家好呀!今天我们来聊聊Java面试中那些让人头疼却又不得不面对的算法题。这些题目就像考试里的压轴大题一样,总是出现在各种大厂面试中。别担心,我今天就带大家梳理...

Java初级开发必背面试题(一)

一、Java基础语法1. JDK和JRE的区别o JDK(Java开发工具包):包含JRE + 编译器(javac)、调试工具(jdb)、文档生成工具(javadoc)等开发工具,适合程序员编写代码。...

2025版Java面试宝典:高频考点+避坑指南

【2025版Java面试宝典:高频考点+避坑指南】▍Java基础核心① 数据类型与对象基本类型:byte(8bit)、short(16bit)、int(32bit)、long(64bit)、float...