【力扣每日一题】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;
        // }
    }
};
相关推荐
郭涤生9 小时前
C++ 线程同步复习
开发语言·c++
Mem0rin9 小时前
[Java]排序
java·算法·排序算法
qeen879 小时前
【算法笔记】差分与经典例题解析
c语言·c++·笔记·学习·算法·差分
HZ·湘怡9 小时前
双链表 -- 带头 双向 循环 链表
数据结构·链表·双链表
kronos.荒10 小时前
动态规划——整数拆分(python)
python·算法·动态规划
say_fall10 小时前
红黑树底层原理全解析:从 5 大性质到 STL 容器底层实现
开发语言·c++
cici1587410 小时前
基于Koopman模型预测控制的非线性流控制数据驱动框架
算法
6Hzlia10 小时前
【Hot 100 刷题计划】 LeetCode 416. 分割等和子集 | C++ 0-1背包 1D空间极致优化
c++·算法·leetcode
穿条秋裤到处跑10 小时前
每日一道leetcode(2026.04.21):执行交换操作后的最小汉明距离
java·算法·leetcode
Tina学编程10 小时前
算法训练Day10 | LeetCode 169 多数元素
算法·leetcode