企业建站服务器,央视网新闻,专业网站设计模板,做微课的网站✨博主#xff1a;命运之光 #x1f984;专栏#xff1a;算法修炼之练气篇#xff08;C\C版#xff09; #x1f353;专栏#xff1a;算法修炼之筑基篇#xff08;C\C版#xff09; #x1f433;专栏#xff1a;算法修炼之练气篇#xff08;Python版#xff09; … ✨博主命运之光 专栏算法修炼之练气篇C\C版 专栏算法修炼之筑基篇C\C版 专栏算法修炼之练气篇Python版 ✨博主的其他文章点击进入博主的主页 前言欢迎来到这个LeetCode每日算法题专栏 无论你是编程新手还是有一定经验的开发者掌握算法和数据结构都是成功的关键。在这个专栏里我将每天为你分享一道算法题并提供简单易懂的解析和讲解。 ☀️通过每日挑战你将逐渐培养解决问题的思维方式掌握重要的编程技巧。无论是面试准备还是日常编码这些知识都将对你大有裨益。 让我们一起开始这段充满乐趣和成长的学习之旅吧希望你能从中受益开拓编程的新视野 目录
leetcode每日一题Day2——344. 反转字符串
解法一双指针推荐
解法二用动态数组来解不推荐
错误总结
编译错误
修正方法如下
成功通过
我又尝试了第二种不用双指针的方法 结语 leetcode每日一题Day2——344. 反转字符串 解法一双指针推荐
class Solution {
public:void reverseString(vectorchar s) {int left 0;int right s.size() - 1;while (left right) {swap(s[left], s[right]);left;right--;}}
};
解法二用动态数组来解不推荐
class Solution {
public:void reverseString(vectorchar s) {vectorchar a;as;for(int i0;is.size();i){a[i]s[s.size()-1-i];}sa;}
};
错误总结 编译错误
Line 4: Char 14: error: array initializer must be an initializer list or string literal char a[]s;
以上代码有一些错误。让我们逐步解析并修正它
class Solution {
public:void reverseString(vectorchar s) {char a[]s; // 错误这里使用了错误的方式来初始化一个字符数组for(int i0;is.length/2;i){swap(a[i],s[s.length-1-i]);}return a; // 错误reverseString() 的返回类型是 void不应该返回任何值}
};
错误的数组初始化方式 在这行代码中char a[]s; 你试图将一个 vectorchar 类型的对象 s 直接赋值给一个字符数组 a。这种初始化方式是错误的因为它要求用初始化列表或字符串字面值来初始化数组。vectorchar 不能直接转换为字符数组。错误的返回类型 reverseString() 函数的返回类型是 void即它不应该返回任何值。在函数签名中已经明确指定了 void因此不需要在函数内部使用 return 语句来返回值。
修正方法如下
class Solution {
public:void reverseString(vectorchar 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(vectorchar s) {vectorchar a;as;for(int i0;is.size();i){a[i]s[s.size()-1-i];}sa;}
}; 结语 再接再厉继续加油 本章的内容就到这里了觉得对你有帮助的话就支持一下博主把~
点击下方个人名片交流会更方便哦~ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓