【力扣每日一题】2023.8.7 反转字符串

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们一个字符数组形式的字符串,让我们直接原地修改反转字符串,不必返回。

给出的条件是使用O(1)的额外空间来对输入数字进行原地修改。

那么这道题是非常经典的双指针应用的题目,我们定义两个指针别分指向数组的开头和结尾,在左右指针相遇之前,交换两个指针所指的元素,然后左指针右移,右指针左移,直到两个指针相遇,我们就将字符串反转了。

代码:

cpp 复制代码
class Solution {
public:
    void reverseString(vector<char>& s) {
        //使用STL算法
        //reverse(s.begin(),s.end());

        //双指针
        int l=0,r=s.size()-1;
        while(l<r){
            char t=s[l];
            s[l]=s[r];
            s[r]=t;
            ++l,--r;
        }

        //双指针另类写法
        // for(int i=0;i<s.size()/2;i++){
        //     char t=s[i];
        //     s[i]=s[s.size()-i-1];
        //     s[s.size()-i-1]=t;
        // }
    }
};
相关推荐
Irissgwe3 分钟前
进程间通信
linux·服务器·网络·c++·进程间通信
Wave8454 分钟前
数据结构—树
数据结构
ic爱吃蓝莓9 分钟前
数据结构 | HashMap原理
数据结构·学习·算法·链表·哈希算法
add45a11 分钟前
C++编译期数据结构
开发语言·c++·算法
灰色小旋风14 分钟前
力扣21 合并两个有序链表(C++)
c++·leetcode·链表
Laurence33 分钟前
Qt 前后端通信(QWebChannel Js / C++ 互操作):原理、示例、步骤解说
前端·javascript·c++·后端·交互·qwebchannel·互操作
王老师青少年编程41 分钟前
2026年3月GESP真题及题解(C++五级):有限不循环小数
c++·题解·真题·gesp·csp·五级·有限不循环小数
Amnesia0_042 分钟前
C++中的IO流
开发语言·c++
2401_8914821743 分钟前
C++模块化编程指南
开发语言·c++·算法
沉鱼.4444 分钟前
树、堆的题目集
算法