leetcode每日一题Day2——344. 反转字符串

news2024/11/15 8:21:32

博主:命运之光 

🦄专栏:算法修炼之练气篇(C\C++版)

🍓专栏:算法修炼之筑基篇(C\C++版)

🐳专栏:算法修炼之练气篇(Python版)

博主的其他文章:点击进入博主的主页 

前言:欢迎来到这个LeetCode每日算法题专栏!

🌊无论你是编程新手还是有一定经验的开发者,掌握算法和数据结构都是成功的关键。在这个专栏里,我将每天为你分享一道算法题,并提供简单易懂的解析和讲解。

☀️通过每日挑战,你将逐渐培养解决问题的思维方式,掌握重要的编程技巧。无论是面试准备还是日常编码,这些知识都将对你大有裨益。

🎉让我们一起开始这段充满乐趣和成长的学习之旅吧!希望你能从中受益,开拓编程的新视野!

目录

leetcode每日一题Day2——344. 反转字符串

解法一:双指针(推荐)

解法二:用动态数组来解(不推荐)

错误总结

编译错误

修正方法如下:

成功通过

我又尝试了第二种不用双指针的方法

 结语


leetcode每日一题Day2——344. 反转字符串

解法一:双指针(推荐)

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

解法二:用动态数组来解(不推荐)

class Solution {
public:
    void reverseString(vector<char>& s) {
        vector<char> a;
        a=s;
        for(int i=0;i<s.size();i++){
            a[i]=s[s.size()-1-i];
        }
        s=a;
    }
};

错误总结

编译错误

Line 4: Char 14: error: array initializer must be an initializer list or string literal char a[]=s;

以上代码有一些错误。让我们逐步解析并修正它:

class Solution {
public:
    void reverseString(vector<char>& s) {
        char a[]=s; // 错误:这里使用了错误的方式来初始化一个字符数组
        for(int i=0;i<s.length/2;i++){
            swap(a[i],s[s.length-1-i]);
        }
        return a; // 错误:reverseString() 的返回类型是 void,不应该返回任何值
    }
};
  1. 错误的数组初始化方式: 在这行代码中:char a[]=s; 你试图将一个 vector<char> 类型的对象 s 直接赋值给一个字符数组 a。这种初始化方式是错误的,因为它要求用初始化列表或字符串字面值来初始化数组。vector<char> 不能直接转换为字符数组。
  2. 错误的返回类型: reverseString() 函数的返回类型是 void,即它不应该返回任何值。在函数签名中已经明确指定了 void,因此不需要在函数内部使用 return 语句来返回值。

修正方法如下:

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

修正后的代码中,我们使用了双指针方法来实现字符串翻转。left 指向字符串的开头,right 指向字符串的末尾,然后交换它们指向的字符,并依次向中间移动,直到 left >= right,即完成了字符串的翻转。这样就避免了数组初始化错误,并且也符合 void 返回类型的要求。

成功通过

我又尝试了第二种不用双指针的方法

class Solution {
public:
    void reverseString(vector<char>& s) {
        vector<char> a;
        a=s;
        for(int i=0;i<s.size();i++){
            a[i]=s[s.size()-1-i];
        }
        s=a;
    }
};


 结语

再接再厉,继续加油!


本章的内容就到这里了,觉得对你有帮助的话就支持一下博主把~

🌌点击下方个人名片,交流会更方便哦~
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/817778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WEB:mfw

背景知识 Git泄露 Githack使用 命令执行漏洞 题目 这里页面里有Git&#xff0c;猜测是Git泄露 先用dirsearch扫一下 确实存在.git目录&#xff0c;可以尝试访问一下 使用Githack来下载并恢复.git文件 这里记得使用的时候关闭杀毒软件 结果会自动保存 点进去先看一下flag这个…

Flyway——修改表名称与序列名称

文章目录 前言脚本修改表名称修改序列 前言 开发中一次偶然的机会&#xff0c;Oracle 12c 更换为 11g &#xff0c;需要对表名称的长度和序列长度做限制要求。 11g相对12c而言&#xff0c;表名称与序列名称的长度&#xff0c;不能超过30个字符。 在开发中做了更改&#xff0c;…

fixed-视频倍速

首先fn12打开开发者模式 然后进入console控制台 document.getElementsByTagName(“video”)[0].playbackRate 3 数字3 就是多少倍速 可以替换想要的倍速 直接快进到 最后 let video document.getElementsByTagName(‘video’) for (let i0; i<video.length; i) { video[…

Linux虚拟机安装tomcat(图文详解)

目录 第一章、xshell工具和xftp的使用1.1&#xff09;xshell下载与安装1.2&#xff09;xshell连接1.3&#xff09;xftp下载安装和连接 第二章、安装tomcat1.1&#xff09;关闭防火墙&#xff0c;传输tomcat压缩包到Linux虚拟机12&#xff09;启动tomcat 第一章、xshell工具和xf…

韦东山Linux驱动入门实验班(5)LED驱动---驱动分层和分离,平台总线模型

前言 &#xff08;1&#xff09;前面已经已经详细介绍了LED驱动如何进行编写的代码。如果韦东山Linux驱动入门实验班&#xff08;4&#xff09;LED驱动已经看懂了&#xff0c;驱动入门实验班后面的那些模块实验&#xff0c;其实和单片机操作差不太多了。我就不再浪费时间进行讲…

Netty各组件基本用法、入站和出站详情、群聊系统的实现、粘包和拆包

Netty Bootstrap和ServerBootstrapFuture和ChannelFutureChannelSelectorNioEventLoop和NioEventLoopGroupByteBuf示例代码 Channel相关组件入站详情出站详情对象编解码ProtoBuf和ProtoStuffnetty实现群聊系统粘包和拆包TCP协议特点举个例子 Bootstrap和ServerBootstrap Boots…

【管理设计篇】聊聊分布式配置中心

为什么需要配置中心 对于一个软件系统来说&#xff0c;除了数据、代码&#xff0c;还有就是软件配置&#xff0c;比如操作系统、数据库配置、服务配置 端口 ip 、邮箱配置、中间件软件配置、启动参数配置等。如果说是一个小型项目的话&#xff0c;可以使用Spring Boot yml文件…

Nginx解决文件服务器文件名显示不全的问题

Nginx可以搭建Http文件服务器&#xff0c;但默认的搭建会长文件名显示不全&#xff0c;比如如下&#xff1a; 问题&#xff1a;显示不全&#xff0c;出现...&#xff0c;需要进行解决 这里使用重新编绎nginx的方式&#xff0c;见此文&#xff1a; https://unix.stackexchange…

CS5265国产Typec转HDMI音视频转换芯片可替代RTD2172

集睿致远/ASL推出的CS5265是一款高性能Type-C/DP1.4至HDMI2.0b转换器IC&#xff0c;设计用于将USB type c源或DP1.4源连接至HDMI2.0b接收器。CS5265集成了DP1.4兼容接收机和HDMI2.0b兼容发射机。此外&#xff0c;CC控制器还用于CC通信&#xff0c;以实现DP Alt模式。DP接口包括…

ARM 常见汇编指令学习 9 - 缓存管理指令 DC 与 IC

文章目录 ARM64 DC 与 IC 指令 上篇文章&#xff1a;ARM 常见汇编指令学习 8 - dsb sy 指令及 dsb 参数介绍 ARM64 DC 与 IC 指令 AArch64指令集中有两条关于缓存维护&#xff08;cache maintenance&#xff09;的指令&#xff0c;分别是IC和DC。 IC 是用于指令缓存操作&…

设备管理升级:揭秘设备健康管理的核心优势

随着工业企业迎来数字化转型的浪潮&#xff0c;设备管理在实现升级和卓越运营方面扮演着关键角色。传统的设备管理方式已经难以适应复杂多变的生产环境&#xff0c;因此设备健康管理作为数字化转型的核心优势应运而生。本文将深入探讨设备健康管理的核心优势&#xff0c;以揭示…

了解ai绘画软件哪个好,我分享这几款你看看

以前绘画是一项需要花费长时间学习的艺术&#xff0c;绘画创作需要耗费许多时间和人工成本。但人工智能的发展&#xff0c;让ai绘画工具成为学习画画、创作的另一种新形式。这些绘画工具仅仅通过输入文字描述就可以生成个性化的创作&#xff0c;帮助我们快速实现绘画创作的梦想…

使用ansible playbook编写lnmp架构

使用ansible playbook编写lnmp架构 - name: nginx playgather_facts: falsehosts: lnmpremote_user: roottasks: - name: stop firewalldservice: namefirewalld statestopped- name: syslinuxcommand: /usr/sbin/setenforce 0ignore_errors: true- name: nginx.repocopy: src/…

Spring基于注解管理bean及全注解开发

文章目录 spring概述Spring定义Spring核心Spring Framework的特点 基于注解管理bean依赖开启组件扫描使用注解定义Bean案例:Autowired注入属性注入set注入形参上注入只有一个构造函数&#xff0c;无注解Autowire注解和Qualifier注解联合 Resource注入Spring全注解开发 spring概…

信息系统项目管理的计算机基础知识

一、信息化发展 &#xff08;一&#xff09;信息与信息化 1、信息 信息是确定性的增加。单位为比特&#xff08;bit&#xff09;。 2、信息系统 信息系统是通过输入数据&#xff0c;然后进行加工处理&#xff0c;最后产生信息的系统。面向管理和支持生产是信息系统的显著特…

【PHP】简记问题:使用strtotime(‘-1 month‘, time)获取上个月第一天时间戳出错

发生场景 在7月31号是查看统计上个月订单购买总金额&#xff0c;查询结果为0 $preMonthStart strtotime(date(Ym01, strtotime("-1 month"))); $curMonthStart strtotime(date(Ym01)); # 统计上月份实际订单金额 $sql "SELECT count(money) FROM orders WH…

Flowable-服务-服务任务

文章目录 定义图形标记XML内容界面操作 定义 服务任务&#xff08;Service Task&#xff09;是一个自动化任务&#xff0c;无须人为参与&#xff0c;一般被用作调用服务。当流程执行到服务任务 时&#xff0c;可以自动执行编写的 Java 程序实现自定义的业务逻辑&#xff0c;完…

SpringMVC中的相关注解

文章目录 RequestMappingGetMappingPostMappingResponseBody传参RequestParamPathVariableRequestBodyRequestPartCookieValueSessionAttributeRequestHeader总结 RequestMapping 支持 GET/POST 类型的请求。&#xff08;&#xff09;内写请求的访问地址。 即可以修饰类也可以修…

springboot2实现图片文件上传与mysql存储路径并回显

环境介绍 技术栈 springbootmybatismysql 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis 2.3.1 springboot是基于spring 4.0&#xff0c;springboot2是基于spring5.0,springboot2由pivotal公司在2018发布,这个框架主要用来…

Pytorch深度学习-----神经网络之池化层用法详解及其最大池化的使用

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用&#xff08;ToTensor&#xff0c;Normalize&#xff0c;Resize &#xff0c;Co…