c++ - 反向 C++ 向量
问题描述
我在 C++ 方面不是很好。问题是一个简单的反向字符串。这是一个 Leetcode 问题,我正在尝试递归地解决它。
void reverse_str(vector<char>& s, int len)
{
if (len <= 1) return;
swap(s[0], s[len-1]);
reverse_str(s.front(), len-2); // Compilation error when I call s.front()
}
void reverseString(vector<char>& s)
{
reverse_str(s, s.size());
}
我正在尝试使用对向量中第二个元素的引用递归调用 reverse_str。我怎么做?
先感谢您。
解决方案
你可以这样做
void reverse_str(vector<char>& s, int len = 0) // default params with zero
{
int n = s.size();
if (len == n / 2)
return;
// swap last with first upto n/2
swap(s[len ], s[n - len - 1]);
reverse_str(s, len + 1);
}
void reverseString(vector<char>& s)
{
reverse_str(s);
}
推荐阅读
- python - 使用python从csv创建自定义json文件
- swift - SwiftUI 动画外部绑定具有相同的 `withAnimation` 样式
- database - 将数据库还原到 MongoDB
- c# - 如何从 Visual Studio 2019 中的 Winforms C# 项目中删除或卸载 Avalonia
- django - Django admin 外键字段组合框
- django - Django - MigrationSchemaMissing 错误窗口
- python - 如何用另一个变量替换一个变量。ruamel.yaml
- python - 返回背包最大值的问题
- java - 在这个特定问题中应用继承的 Java 方法是什么?
- reactjs - ReactJS/nextjs 无效的钩子调用