B
bobl0456
A student submitted this code:
bool isPalindrome(string word)
{
string::iterator forwardIt = word.begin();
string::reverse_iterator reverseIt = word.rbegin();
while (forwardIt != word.end())
{
if (*forwardIt != *reverseIt)
{
return false;
}
else
{
++forwardIt;
++reverseIt;
}
}
}
The function seems to work, even though I don't believe it should.
Specifically, I believe the code should be instead:
bool isPalindrome(string word)
{
string::iterator forwardIt = word.begin();
string::reverse_iterator reverseIt = word.rbegin();
while (forwardIt != word.end())
{
if (*forwardIt != *reverseIt)
{
return false;
}
else
{
++forwardIt;
++reverseIt;
}
}
return true; // THE CHANGE I MADE
}
The if statement that invokes this function appears to work correctly:
if (isPalindrome(substring))
Does anyone have a clue as to how this works despite the missing return statement?
Thanks in advance.
bool isPalindrome(string word)
{
string::iterator forwardIt = word.begin();
string::reverse_iterator reverseIt = word.rbegin();
while (forwardIt != word.end())
{
if (*forwardIt != *reverseIt)
{
return false;
}
else
{
++forwardIt;
++reverseIt;
}
}
}
The function seems to work, even though I don't believe it should.
Specifically, I believe the code should be instead:
bool isPalindrome(string word)
{
string::iterator forwardIt = word.begin();
string::reverse_iterator reverseIt = word.rbegin();
while (forwardIt != word.end())
{
if (*forwardIt != *reverseIt)
{
return false;
}
else
{
++forwardIt;
++reverseIt;
}
}
return true; // THE CHANGE I MADE
}
The if statement that invokes this function appears to work correctly:
if (isPalindrome(substring))
Does anyone have a clue as to how this works despite the missing return statement?
Thanks in advance.