首页 > 解决方案 > 反向 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。我怎么做?

先感谢您。

标签: c++stdvector

解决方案


你可以这样做

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);
}

推荐阅读