Write an algorithm that checks whether a given string s is a palindrome (it reads the same way backward as forwards). For i in (0..floor(|s|/2)): If s[i] != s[|s|-1-i]: Return False Return True code example
Example 1: Write a function that tests whether a string is a palindrome
def palindrome_check(string):
string = list(string)
tmp = []
#remove any spaces
for x in range(0, len(string)):
if(string[x] != " "):
tmp.append(string[x].lower())
#now reverse the string
array1 = []
i = 0
j = len(tmp)-1
while(i < len(tmp)):
array1.append(tmp[j])
i += 1
j -= 1
#check if array1 is equal to the string
counter = 0
for x in range(0, len(tmp)):
if(tmp[x] == array1[x]):
counter += 1
#if the counter is equal to the length of the string then the word
#is the same
if(counter == len(tmp)):
return True
return False
Example 2: reads the string in then determines if the string is a palindrome.
#include <iostream>
using namespace std;
bool isPalindrome(string str)
{
int low = 0;
int high = str.length() - 1;
while (low < high)
{
if (str[low] != str[high])
return false;
low++;
high--;
}
return true;
}
int main()
{
string str = "XYXYX";
if (isPalindrome(str))
cout << "Palindrome";
else
cout << "Not Palindrome";
return 0;
}