首页 > 编程语言 >代码随想录算法训练营第8天 | 344.反转字符串,541. 反转字符串II,替换数字

代码随想录算法训练营第8天 | 344.反转字符串,541. 反转字符串II,替换数字

时间:2025-01-16 20:21:39浏览次数:1  
标签:right int 反转 随想录 len 字符串 left size

一、刷题部分

1.1 题目名称

1.1.1 题目描述

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

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

示例 1:

输入:s = ["h","e","l","l","o"]
输出:["o","l","l","e","h"]

示例 2:

输入:s = ["H","a","n","n","a","h"]
输出:["h","a","n","n","a","H"]

提示:

  • 1 <= s.length <= 105
  • s[i] 都是 ASCII 码表中的可打印字符

1.1.2 初见想法

直接交换头尾元素,然后一直往中间走就行。

class Solution {
public:
    void reverseString(vector<char>& s) {
        int left = 0, right = s.size() - 1;
        while (left < right) {
            char temp;
            temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            left++;
            right--;
        }
    }
};

1.1.3 看录后想法

简单题,不多说了。主要是想表达库函数的使用要分情况,一个题目关键步骤应当自己实现,如果不是关键步骤则可以考虑库函数实现。

1.1.4 遇到的困难

标签:right,int,反转,随想录,len,字符串,left,size
From: https://www.cnblogs.com/xuchiblog/p/18675703

相关文章

  • 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19. 删除链表的倒数第N个节
    9-24.两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1] 提......
  • 代码随想录:二叉搜索树的最小绝对值
    遍历二叉搜索树,定义一个全局的上一个节点确实好用/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):......
  • 代码随想录:验证二叉搜索树
    二叉搜索树的中序遍历结果是一个递增的数组为了省空间可以用一个变量记录上一次的数字我一开始设置上一次的为null,结果c++中int为null时实际为0,所以要用最小值/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*......
  • Json 序列化,将对象序列化为Json字符串(此Json序列化,是“不安全的放松JSON转义”,即不会
    ///<summary>///Json序列化帮助类///</summary>publicclassJsonSerializerHelper{///<summary>///将对象序列化为Json字符串(此Json序列化,是“不安全的放松JSON转义”,即不会将物特殊符号和中文进行转码)///</summary>///<paramname="obj"></param>......
  • 写个方法,找出指定字符串中重复最多的字符及其长度
    在前端开发中,你可以使用JavaScript来实现这个功能。下面是一个示例方法,用于找出指定字符串中重复最多的字符及其长度:functionfindMostRepeatedChar(str){//创建一个空对象来存储字符及其出现的次数constcharCount={};//遍历字符串中的每个字符for(leti=0......
  • 字符串算法总结
    KMPAC自动机ACAMexKMPZ函数manacher后缀自动机SAM结论与思考一个节点\(i\)到根节点的链上所有节点endpos的并集是以\(i\)为结尾的所有字符串(以\(i\)为结尾的后缀)。节点\(i\)的endpos里所有后缀的出现次数相等,且儿子的endpos里的字符串长度一定大于父亲......
  • 可以用于分割字符串的方法(python)
    一、str.split(sep,maxsplit)函数(返回列表)sep:分隔符maxsplit:分割次数a="Helloworld"list1=a.split("",1)print(list1)结果:['Hello','world']二、str.rsplit(sep,maxsplit)函数(从右边开始分割,返回列表)sep:分隔符maxsplit:分割次数a="Helloworld&q......
  • 151. 反转字符串中的单词
    题目不会做,老老实实看卡哥思路,这里面讲的很详细,有很多值得学习揣摩的东西。在把空格处理好后,先反转整体,再反转其中的单词的方法,很值得学习。即使用整体反转+局部反转就可以实现反转单词顺序的目的跟着卡哥代码敲了一遍:classSolution{public:voidreverse(string&s,i......
  • 55. 右旋字符串(第八期模拟笔试)
    题目自己写的:#include<iostream>#include<string>#include<algorithm>usingnamespacestd;intmain(){intn;strings;cin>>n>>s;reverse(s.begin(),s.end());reverse(s.begin(),s.begin()+n);r......
  • LeetCode字符串
    LeetCode字符串LeetCode字符串刷题记录基础知识字符串和数组很相似每个元素的数据类型相同都可以通过下标索引访问字符串比大小从第0个位置开始,依次比较对应位置上的字符编码大小defcompare(str1,str2):i=0j=0whilei<len(str1)andj<len(s......