Palindrome Tester Implement a function to recursively determine if a word is a p
ID: 3556514 • Letter: P
Question
Palindrome Tester
Implement a function to recursively determine if a word is a palindrome. A palindrome is a word, phrase, number, or other sequence of symbols or elements, whose meaning may be interpreted the same way in either forward or reverse direction. Famous examples include "Able was I ere I saw Elba", "A man, a plan, a canal: Panama".
Important questions to ask yourself:
The substr method of the string class will be useful. It takes the starting position of the first character to be copied as a substring and the number of characters to include in the substring.
Also useful is the length method. It returns the length of the string in question.
Examples:
The above example prints out: fia
Here is some code to get you started. Submit your modified palindrome function. Do not modify the main function. When testing your function don't forget to type the word on the command line after "a.out": ./a.out radar
Explanation / Answer
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
bool palindrome(string);
int main(int argc, char *argv[]) {
string s = argc == 2 ? argv[1] : "redivider";
if (palindrome(s)) {
cout << """ << s << "" is a palindrome." << endl;
}
else {
cout << """ << s << "" is not a palindrome." << endl;
}
return 0;
}
bool palindrome(string w) {
// your code goes here
int i,j;
//convert string to lower case
for(i=0;i<w.length();i++) w[i]=tolower(w[i]);
//checking palindrome
// iterate to half of the length from start and end respectively
// and check if characters are same , if not the w is not palindrome.
i=0,j=w.length()-1;
while(i<j)
{
if(w[i]!=w[j])
{
cout<<i<<endl;
return false;
}
i++;
j--;
}
return true;
}
Please do rate me.. thanks alot
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.