gpt4 book ai didi

c++ - 尝试使用 C++ 实现检测字符串中回文的递归版本。在这里遇到一些麻烦

转载 作者:行者123 更新时间:2023-11-28 00:17:20 25 4
gpt4 key购买 nike

在尝试实现用于检测回文的递归版本时遇到问题。无法获得正确的输出:(

#include <iostream>
#include <string>
using namespace std;

bool testPalindrome( string, unsigned int length, int begin );

int main()
{
string test;
cout << "Enter what you wish to test for a palindrome: ";
cin >> test;
unsigned int len = test.length(); // acquire length of string
int beginning = 0; // set variable to point to beginning of string

if ( testPalindrome( test, len, beginning ) )
cout << "PALINDROME!" << endl;
else
cout << "NOTHING" << endl;
}

上面的代码是我用来测试我正在实现的回文函数的主要函数。下面,我还提供了我编写的用于检测回文的代码。

// implemented recursive function to check for a palindrome
bool testPalindrome( string name, unsigned int len, int begin )
{
// conditional to determine if beginning char position is equal to last char

if ( begin >= len )
return true; // if so, return true
// check if characters are equal, if not return false
else if ( name[ begin ] != name[ len ] )
return false;
// general case, call function with positions of characters being tested
// shifted by one slot each, respectively
else
return testPalindrome( name, ( len - 1 ), ( begin + 1 ) );
}

最佳答案

你没有很好地解释你的问题到底是什么,但我怀疑你的问题是你将 len 索引到 name 而不是 len - 1。对字符串的索引是零索引而非单索引,因此索引 len 无效。

关于c++ - 尝试使用 C++ 实现检测字符串中回文的递归版本。在这里遇到一些麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29404365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com