answersLogoWhite

0


Best Answer
Answer 1:private static final boolean isPalindrome(final String str) {

return str.equals((new StringBuilder(str)).reverse().toString());

}

Answer 2:import java.io.*;

class StringPalindrome

{

protected static void main()throws IOException

{

BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter the String: ");

String s=in.readLine(),n="";

for(short i=(short)(s.length()-1);i>=0;i--)

{

char ch=s.charAt(i);

n+=ch;

}

if(s.equalsIgnoreCase(n))

System.out.print("Palindrome!!!!");

else

System.out.print("Not Palindrome!!!!");

}}

User Avatar

Wiki User

14y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

14y ago

CORE CODE POLICY: put the no into a String array. then read it from the last one word to the first. ok,parsInt into a number compare the no to the last. if they equal to each other. the no is,but not.

This answer is:
User Avatar

User Avatar

Wiki User

14y ago

use StringBuffer class it gives a method to reverse a string and convert the StringBuffer into string compare The two Strings.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Full java program to find the given string is palindrome or not?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Engineering

How do you generate palindrome number between the given range?

The generation of palindromic numbers within a given range is best done with a computer program. Space it limited so an example of program code cannot be shown here, but the Codecast website gives full guidance.


C plus plus program of a palindrome?

There are several ways to determine if a string is a palindrome or not. Typically, you must first ignore all spacing, capitalisation and punctutation within the string, which can be done by copying the string, character by character, ignoring all non-alphanumeric characters. You then point to the first and last characters in the modified string and, so long as both characters under the pointers are the same, work the pointers towards the middle of the string until the pointers either meet in the middle or they pass each other. That is, if the string has an odd count of characters, the pointers will meet at the middle character, otherwise they will pass each other. At that point you can say with certainty the string is a palindrome. If the characters under the pointers differ at any time, then the string is not a palindrome. This is fairly straightforward to program. A more interesting problem is when you have to locate the longest palindrome within a string which is not itself a palindrome. For instance, the string "Madam, I'm Adam is a palindrome" is not a palindrome, but it does contain one: "Madam I'm Adam". In this case we cannot point to the first and last characters and work towards the middle. Instead, we have to test every possible substring of the string. We do this by starting at the first character and treat it as if it were actually the middle character of a palindrome, and then move our pointers to the left and right of this character while the characters match. When they no longer match, or one of the pointers has reached either end of the string, we store the longest palindrome found up to that point and then move onto the next character and treat it as the middle character. If we continue in this manner, treating every character as if it were the middle character of a palindrome, we will eventually locate the longest palindrome. The problem with this approach is when the longest palindrome has an even number of characters instead of an odd number. To get around this we simply place a single space between each character, and treat each of those as being the middle character as well. When a palindrome is found, we simply remove the spaces. In this way we can use exactly the same algorithm to cater for both odd and even character palindromes. The only remaining problem is when we wish to print the palindrome itself. Since this will be a substring of the original string, we cannot use the modified string we used to locate the palindrome. One way to get around that is to store the original positions of each letter in an array of indices, and use that array to determine where the substring lies with in the original string. The following program demonstrates this technique in full. The key function is the ispalindrome() function, which accepts a lower-case copy of the string (including the original spacing an punctuation), and a vector that contains the indices of each letter within the string (ignoring puctuation and spacing), separated by -1 values (representing the implied spaces between each letter). The pos value tells the function which index of the vector is to be treated as the middle character of the potential palindrome, while x and y are output parameters that determine the start and end of the palindrome within the vector. The function returns true if a palindrome was found, and the x and y values can be used to extract the palindrome from the original string, using the indices stored in the vector. Note that when the search for a palindrome fails, we step back the x and y indices by one, and if the vector index is -1, then we step back another index. We then test the x and y values to see if they indicate a palindrome was found or not. The strip() function is another key function. This generates the vector from the lower case copy of the original string. Although we could eliminate the -1 values at the start and end of the vector, it's simpler to just leave them in. You will note that the program can cater for strings that are themselves palindromes, as well as strings that contain palindromes. #include<iostream> #include<string> #include<vector> using namespace std; string input_string(string prompt) { cout<<prompt<<":\t"; string input; getline(cin, input, '\n'); return(input); } void convert_tolower(string& s) { for(string::iterator i=s.begin(); i!=s.end(); ++i) *i=tolower(*i); } vector<int> strip(const string& s) { vector<int> v; v.push_back(-1); for(int i=0; i<s.size(); ++i) { if((s[i]>='a' && s[i]<='z') (s[i]>='0' && s[i]<='9')) { v.push_back(i); v.push_back(-1); } } return(v); } bool ispalindrome(const string s, const vector<int> v, int pos, int& x, int& y) { for(x=pos,y=pos; x>=0 && y<v.size(); --x, ++y) if( v[x]!=-1 && ( s[v[x]]!=s[v[y]] )) break; ++x, --y; if( v[x]==-1 ) ++x, --y; return(x>=0 && x<y && y-x>1); } int main() { string input; while(1) { input=input_string("Enter a string"); if(input.size()==0) break; string copy(input); convert_tolower(copy); vector<int> v=strip(copy); string pal; int pos=0; for(int i=0; i<v.size(); ++i) { int start=0, end=0; if( ispalindrome( copy, v, i, start, end)) { string tmp( input.substr(v[start],v[end]-v[start]+1)); if( tmp.size() > pal.size() ) { pal = tmp; pos = v[start]; } } } if( pal.size() ) { cout<<"Palindrome:\t"; for(int i=0; i<pos; ++i) cout<<" "; cout<<pal<<"\n"<<endl; } else cout<<"The string contains no palindromes!\n"<<endl; } return(0); } Example output: Enter a string: Madam, I'm Adam Palindrome: Madam, I'm Adam Enter a string: Madam, I'm Adam is a palindrome Palindrome: Madam, I'm Adam Enter a string: In girum imus nocte et consumimur igni Palindrome: In girum imus nocte et consumimur igni Enter a string: 0123456765432 Palindrome: 23456765432 Enter a string: Press any key to continue . . .


Javascript code for palindrome?

AnswerFirst find the end of the string.Then compare the first character to the last character, and if they are different the string is not a palindrome.Then go the next pair of characters and do # 2 until you reach the middleHere's a quick and dirty example:int ispalindrome(const char *s){const char *end = s;while (*++end);while (end > s)if (*--end != *s++) return 0;return 1;}This example doesn't skip punctuation or spaces, and it compares letters case sensitively. You are more than welcome to use and improve upon this example.


Write a C program to check a string is a palindrome or not?

cls input "enter a string=";s$ l=len(s$) for i = l to 1 step-1 c$=mid$(s$,i,l) next i r$=c$+r$ if r$=c$ then print "no. is palindrome" else print "no. is not palindrome" endif end


Palindrome in c plus plus?

There are several ways to determine if a string is a palindrome or not. Typically, you must first ignore all spacing, capitalisation and punctutation within the string, which can be done by copying the string, character by character, ignoring all non-alphanumeric characters. You then point to the first and last characters in the modified string and, so long as both characters under the pointers are the same, work the pointers towards the middle of the string until the pointers either meet in the middle or they pass each other. That is, if the string has an odd count of characters, the pointers will meet at the middle character, otherwise they will pass each other. At that point you can say with certainty the string is a palindrome. If the characters under the pointers differ at any time, then the string is not a palindrome. This is fairly straightforward to program. A more interesting problem is when you have to locate the longest palindrome within a string which is not itself a palindrome. For instance, the string "Madam, I'm Adam is a palindrome" is not a palindrome, but it does contain one: "Madam I'm Adam". In this case we cannot point to the first and last characters and work towards the middle. Instead, we have to test every possible substring of the string. We do this by starting at the first character and treat it as if it were actually the middle character of a palindrome, and then move our pointers to the left and right of this character while the characters match. When they no longer match, or one of the pointers has reached either end of the string, we store the longest palindrome found up to that point and then move onto the next character and treat it as the middle character. If we continue in this manner, treating every character as if it were the middle character of a palindrome, we will eventually locate the longest palindrome. The problem with this approach is when the longest palindrome has an even number of characters instead of an odd number. To get around this we simply place a single space between each character, and treat each of those as being the middle character as well. When a palindrome is found, we simply remove the spaces. In this way we can use exactly the same algorithm to cater for both odd and even character palindromes. The only remaining problem is when we wish to print the palindrome itself. Since this will be a substring of the original string, we cannot use the modified string we used to locate the palindrome. One way to get around that is to store the original positions of each letter in an array of indices, and use that array to determine where the substring lies with in the original string. The following program demonstrates this technique in full. The key function is the ispalindrome() function, which accepts a lower-case copy of the string (including the original spacing an punctuation), and a vector that contains the indices of each letter within the string (ignoring puctuation and spacing), separated by -1 values (representing the implied spaces between each letter). The pos value tells the function which index of the vector is to be treated as the middle character of the potential palindrome, while x and y are output parameters that determine the start and end of the palindrome within the vector. The function returns true if a palindrome was found, and the x and y values can be used to extract the palindrome from the original string, using the indices stored in the vector. Note that when the search for a palindrome fails, we step back the x and y indices by one, and if the vector index is -1, then we step back another index. We then test the x and y values to see if they indicate a palindrome was found or not. The strip() function is another key function. This generates the vector from the lower case copy of the original string. Although we could eliminate the -1 values at the start and end of the vector, it's simpler to just leave them in. You will note that the program can cater for strings that are themselves palindromes, as well as strings that contain palindromes. #include<iostream> #include<string> #include<vector> using namespace std; string input_string(string prompt) { cout<<prompt<<":\t"; string input; getline(cin, input, '\n'); return(input); } void convert_tolower(string& s) { for(string::iterator i=s.begin(); i!=s.end(); ++i) *i=tolower(*i); } vector<int> strip(const string& s) { vector<int> v; v.push_back(-1); for(int i=0; i<s.size(); ++i) { if((s[i]>='a' && s[i]<='z') (s[i]>='0' && s[i]<='9')) { v.push_back(i); v.push_back(-1); } } return(v); } bool ispalindrome(const string s, const vector<int> v, int pos, int& x, int& y) { for(x=pos,y=pos; x>=0 && y<v.size(); --x, ++y) if( v[x]!=-1 && ( s[v[x]]!=s[v[y]] )) break; ++x, --y; if( v[x]==-1 ) ++x, --y; return(x>=0 && x<y && y-x>1); } int main() { string input; while(1) { input=input_string("Enter a string"); if(input.size()==0) break; string copy(input); convert_tolower(copy); vector<int> v=strip(copy); string pal; int pos=0; for(int i=0; i<v.size(); ++i) { int start=0, end=0; if( ispalindrome( copy, v, i, start, end)) { string tmp( input.substr(v[start],v[end]-v[start]+1)); if( tmp.size() > pal.size() ) { pal = tmp; pos = v[start]; } } } if( pal.size() ) { cout<<"Palindrome:\t"; for(int i=0; i<pos; ++i) cout<<" "; cout<<pal<<"\n"<<endl; } else cout<<"The string contains no palindromes!\n"<<endl; } return(0); } Example output: Enter a string: Madam, I'm Adam Palindrome: Madam, I'm Adam Enter a string: Madam, I'm Adam is a palindrome Palindrome: Madam, I'm Adam Enter a string: In girum imus nocte et consumimur igni Palindrome: In girum imus nocte et consumimur igni Enter a string: 0123456765432 Palindrome: 23456765432 Enter a string: Press any key to continue . . .

Related questions

How do you generate palindrome number between the given range?

The generation of palindromic numbers within a given range is best done with a computer program. Space it limited so an example of program code cannot be shown here, but the Codecast website gives full guidance.


C plus plus program of a palindrome?

There are several ways to determine if a string is a palindrome or not. Typically, you must first ignore all spacing, capitalisation and punctutation within the string, which can be done by copying the string, character by character, ignoring all non-alphanumeric characters. You then point to the first and last characters in the modified string and, so long as both characters under the pointers are the same, work the pointers towards the middle of the string until the pointers either meet in the middle or they pass each other. That is, if the string has an odd count of characters, the pointers will meet at the middle character, otherwise they will pass each other. At that point you can say with certainty the string is a palindrome. If the characters under the pointers differ at any time, then the string is not a palindrome. This is fairly straightforward to program. A more interesting problem is when you have to locate the longest palindrome within a string which is not itself a palindrome. For instance, the string "Madam, I'm Adam is a palindrome" is not a palindrome, but it does contain one: "Madam I'm Adam". In this case we cannot point to the first and last characters and work towards the middle. Instead, we have to test every possible substring of the string. We do this by starting at the first character and treat it as if it were actually the middle character of a palindrome, and then move our pointers to the left and right of this character while the characters match. When they no longer match, or one of the pointers has reached either end of the string, we store the longest palindrome found up to that point and then move onto the next character and treat it as the middle character. If we continue in this manner, treating every character as if it were the middle character of a palindrome, we will eventually locate the longest palindrome. The problem with this approach is when the longest palindrome has an even number of characters instead of an odd number. To get around this we simply place a single space between each character, and treat each of those as being the middle character as well. When a palindrome is found, we simply remove the spaces. In this way we can use exactly the same algorithm to cater for both odd and even character palindromes. The only remaining problem is when we wish to print the palindrome itself. Since this will be a substring of the original string, we cannot use the modified string we used to locate the palindrome. One way to get around that is to store the original positions of each letter in an array of indices, and use that array to determine where the substring lies with in the original string. The following program demonstrates this technique in full. The key function is the ispalindrome() function, which accepts a lower-case copy of the string (including the original spacing an punctuation), and a vector that contains the indices of each letter within the string (ignoring puctuation and spacing), separated by -1 values (representing the implied spaces between each letter). The pos value tells the function which index of the vector is to be treated as the middle character of the potential palindrome, while x and y are output parameters that determine the start and end of the palindrome within the vector. The function returns true if a palindrome was found, and the x and y values can be used to extract the palindrome from the original string, using the indices stored in the vector. Note that when the search for a palindrome fails, we step back the x and y indices by one, and if the vector index is -1, then we step back another index. We then test the x and y values to see if they indicate a palindrome was found or not. The strip() function is another key function. This generates the vector from the lower case copy of the original string. Although we could eliminate the -1 values at the start and end of the vector, it's simpler to just leave them in. You will note that the program can cater for strings that are themselves palindromes, as well as strings that contain palindromes. #include<iostream> #include<string> #include<vector> using namespace std; string input_string(string prompt) { cout<<prompt<<":\t"; string input; getline(cin, input, '\n'); return(input); } void convert_tolower(string& s) { for(string::iterator i=s.begin(); i!=s.end(); ++i) *i=tolower(*i); } vector<int> strip(const string& s) { vector<int> v; v.push_back(-1); for(int i=0; i<s.size(); ++i) { if((s[i]>='a' && s[i]<='z') (s[i]>='0' && s[i]<='9')) { v.push_back(i); v.push_back(-1); } } return(v); } bool ispalindrome(const string s, const vector<int> v, int pos, int& x, int& y) { for(x=pos,y=pos; x>=0 && y<v.size(); --x, ++y) if( v[x]!=-1 && ( s[v[x]]!=s[v[y]] )) break; ++x, --y; if( v[x]==-1 ) ++x, --y; return(x>=0 && x<y && y-x>1); } int main() { string input; while(1) { input=input_string("Enter a string"); if(input.size()==0) break; string copy(input); convert_tolower(copy); vector<int> v=strip(copy); string pal; int pos=0; for(int i=0; i<v.size(); ++i) { int start=0, end=0; if( ispalindrome( copy, v, i, start, end)) { string tmp( input.substr(v[start],v[end]-v[start]+1)); if( tmp.size() > pal.size() ) { pal = tmp; pos = v[start]; } } } if( pal.size() ) { cout<<"Palindrome:\t"; for(int i=0; i<pos; ++i) cout<<" "; cout<<pal<<"\n"<<endl; } else cout<<"The string contains no palindromes!\n"<<endl; } return(0); } Example output: Enter a string: Madam, I'm Adam Palindrome: Madam, I'm Adam Enter a string: Madam, I'm Adam is a palindrome Palindrome: Madam, I'm Adam Enter a string: In girum imus nocte et consumimur igni Palindrome: In girum imus nocte et consumimur igni Enter a string: 0123456765432 Palindrome: 23456765432 Enter a string: Press any key to continue . . .


What is the code for Palindrome through for loop in c plus plus?

There are several ways to determine if a string is a palindrome or not. Typically, you must first ignore all spacing, capitalisation and punctutation within the string, which can be done by copying the string, character by character, ignoring all non-alphanumeric characters. You then point to the first and last characters in the modified string and, so long as both characters under the pointers are the same, work the pointers towards the middle of the string until the pointers either meet in the middle or they pass each other. That is, if the string has an odd count of characters, the pointers will meet at the middle character, otherwise they will pass each other. At that point you can say with certainty the string is a palindrome. If the characters under the pointers differ at any time, then the string is not a palindrome. This is fairly straightforward to program. A more interesting problem is when you have to locate the longest palindrome within a string which is not itself a palindrome. For instance, the string "Madam, I'm Adam is a palindrome" is not a palindrome, but it does contain one: "Madam I'm Adam". In this case we cannot point to the first and last characters and work towards the middle. Instead, we have to test every possible substring of the string. We do this by starting at the first character and treat it as if it were actually the middle character of a palindrome, and then move our pointers to the left and right of this character while the characters match. When they no longer match, or one of the pointers has reached either end of the string, we store the longest palindrome found up to that point and then move onto the next character and treat it as the middle character. If we continue in this manner, treating every character as if it were the middle character of a palindrome, we will eventually locate the longest palindrome. The problem with this approach is when the longest palindrome has an even number of characters instead of an odd number. To get around this we simply place a single space between each character, and treat each of those as being the middle character as well. When a palindrome is found, we simply remove the spaces. In this way we can use exactly the same algorithm to cater for both odd and even character palindromes. The only remaining problem is when we wish to print the palindrome itself. Since this will be a substring of the original string, we cannot use the modified string we used to locate the palindrome. One way to get around that is to store the original positions of each letter in an array of indices, and use that array to determine where the substring lies with in the original string. The following program demonstrates this technique in full. The key function is the ispalindrome() function, which accepts a lower-case copy of the string (including the original spacing an punctuation), and a vector that contains the indices of each letter within the string (ignoring puctuation and spacing), separated by -1 values (representing the implied spaces between each letter). The pos value tells the function which index of the vector is to be treated as the middle character of the potential palindrome, while x and y are output parameters that determine the start and end of the palindrome within the vector. The function returns true if a palindrome was found, and the x and y values can be used to extract the palindrome from the original string, using the indices stored in the vector. Note that when the search for a palindrome fails, we step back the x and y indices by one, and if the vector index is -1, then we step back another index. We then test the x and y values to see if they indicate a palindrome was found or not. The strip() function is another key function. This generates the vector from the lower case copy of the original string. Although we could eliminate the -1 values at the start and end of the vector, it's simpler to just leave them in. You will note that the program can cater for strings that are themselves palindromes, as well as strings that contain palindromes. #include<iostream> #include<string> #include<vector> using namespace std; string input_string(string prompt) { cout<<prompt<<":\t"; string input; getline(cin, input, '\n'); return(input); } void convert_tolower(string& s) { for(string::iterator i=s.begin(); i!=s.end(); ++i) *i=tolower(*i); } vector<int> strip(const string& s) { vector<int> v; v.push_back(-1); for(int i=0; i<s.size(); ++i) { if((s[i]>='a' && s[i]<='z') (s[i]>='0' && s[i]<='9')) { v.push_back(i); v.push_back(-1); } } return(v); } bool ispalindrome(const string s, const vector<int> v, int pos, int& x, int& y) { for(x=pos,y=pos; x>=0 && y<v.size(); --x, ++y) if( v[x]!=-1 && ( s[v[x]]!=s[v[y]] )) break; ++x, --y; if( v[x]==-1 ) ++x, --y; return(x>=0 && x<y && y-x>1); } int main() { string input; while(1) { input=input_string("Enter a string"); if(input.size()==0) break; string copy(input); convert_tolower(copy); vector<int> v=strip(copy); string pal; int pos=0; for(int i=0; i<v.size(); ++i) { int start=0, end=0; if( ispalindrome( copy, v, i, start, end)) { string tmp( input.substr(v[start],v[end]-v[start]+1)); if( tmp.size() > pal.size() ) { pal = tmp; pos = v[start]; } } } if( pal.size() ) { cout<<"Palindrome:\t"; for(int i=0; i<pos; ++i) cout<<" "; cout<<pal<<"\n"<<endl; } else cout<<"The string contains no palindromes!\n"<<endl; } return(0); } Example output: Enter a string: Madam, I'm Adam Palindrome: Madam, I'm Adam Enter a string: Madam, I'm Adam is a palindrome Palindrome: Madam, I'm Adam Enter a string: In girum imus nocte et consumimur igni Palindrome: In girum imus nocte et consumimur igni Enter a string: 0123456765432 Palindrome: 23456765432 Enter a string: Press any key to continue . . .


Javascript code for palindrome?

AnswerFirst find the end of the string.Then compare the first character to the last character, and if they are different the string is not a palindrome.Then go the next pair of characters and do # 2 until you reach the middleHere's a quick and dirty example:int ispalindrome(const char *s){const char *end = s;while (*++end);while (end > s)if (*--end != *s++) return 0;return 1;}This example doesn't skip punctuation or spaces, and it compares letters case sensitively. You are more than welcome to use and improve upon this example.


Write a C program to check a string is a palindrome or not?

cls input "enter a string=";s$ l=len(s$) for i = l to 1 step-1 c$=mid$(s$,i,l) next i r$=c$+r$ if r$=c$ then print "no. is palindrome" else print "no. is not palindrome" endif end


Palindrome in c plus plus?

There are several ways to determine if a string is a palindrome or not. Typically, you must first ignore all spacing, capitalisation and punctutation within the string, which can be done by copying the string, character by character, ignoring all non-alphanumeric characters. You then point to the first and last characters in the modified string and, so long as both characters under the pointers are the same, work the pointers towards the middle of the string until the pointers either meet in the middle or they pass each other. That is, if the string has an odd count of characters, the pointers will meet at the middle character, otherwise they will pass each other. At that point you can say with certainty the string is a palindrome. If the characters under the pointers differ at any time, then the string is not a palindrome. This is fairly straightforward to program. A more interesting problem is when you have to locate the longest palindrome within a string which is not itself a palindrome. For instance, the string "Madam, I'm Adam is a palindrome" is not a palindrome, but it does contain one: "Madam I'm Adam". In this case we cannot point to the first and last characters and work towards the middle. Instead, we have to test every possible substring of the string. We do this by starting at the first character and treat it as if it were actually the middle character of a palindrome, and then move our pointers to the left and right of this character while the characters match. When they no longer match, or one of the pointers has reached either end of the string, we store the longest palindrome found up to that point and then move onto the next character and treat it as the middle character. If we continue in this manner, treating every character as if it were the middle character of a palindrome, we will eventually locate the longest palindrome. The problem with this approach is when the longest palindrome has an even number of characters instead of an odd number. To get around this we simply place a single space between each character, and treat each of those as being the middle character as well. When a palindrome is found, we simply remove the spaces. In this way we can use exactly the same algorithm to cater for both odd and even character palindromes. The only remaining problem is when we wish to print the palindrome itself. Since this will be a substring of the original string, we cannot use the modified string we used to locate the palindrome. One way to get around that is to store the original positions of each letter in an array of indices, and use that array to determine where the substring lies with in the original string. The following program demonstrates this technique in full. The key function is the ispalindrome() function, which accepts a lower-case copy of the string (including the original spacing an punctuation), and a vector that contains the indices of each letter within the string (ignoring puctuation and spacing), separated by -1 values (representing the implied spaces between each letter). The pos value tells the function which index of the vector is to be treated as the middle character of the potential palindrome, while x and y are output parameters that determine the start and end of the palindrome within the vector. The function returns true if a palindrome was found, and the x and y values can be used to extract the palindrome from the original string, using the indices stored in the vector. Note that when the search for a palindrome fails, we step back the x and y indices by one, and if the vector index is -1, then we step back another index. We then test the x and y values to see if they indicate a palindrome was found or not. The strip() function is another key function. This generates the vector from the lower case copy of the original string. Although we could eliminate the -1 values at the start and end of the vector, it's simpler to just leave them in. You will note that the program can cater for strings that are themselves palindromes, as well as strings that contain palindromes. #include<iostream> #include<string> #include<vector> using namespace std; string input_string(string prompt) { cout<<prompt<<":\t"; string input; getline(cin, input, '\n'); return(input); } void convert_tolower(string& s) { for(string::iterator i=s.begin(); i!=s.end(); ++i) *i=tolower(*i); } vector<int> strip(const string& s) { vector<int> v; v.push_back(-1); for(int i=0; i<s.size(); ++i) { if((s[i]>='a' && s[i]<='z') (s[i]>='0' && s[i]<='9')) { v.push_back(i); v.push_back(-1); } } return(v); } bool ispalindrome(const string s, const vector<int> v, int pos, int& x, int& y) { for(x=pos,y=pos; x>=0 && y<v.size(); --x, ++y) if( v[x]!=-1 && ( s[v[x]]!=s[v[y]] )) break; ++x, --y; if( v[x]==-1 ) ++x, --y; return(x>=0 && x<y && y-x>1); } int main() { string input; while(1) { input=input_string("Enter a string"); if(input.size()==0) break; string copy(input); convert_tolower(copy); vector<int> v=strip(copy); string pal; int pos=0; for(int i=0; i<v.size(); ++i) { int start=0, end=0; if( ispalindrome( copy, v, i, start, end)) { string tmp( input.substr(v[start],v[end]-v[start]+1)); if( tmp.size() > pal.size() ) { pal = tmp; pos = v[start]; } } } if( pal.size() ) { cout<<"Palindrome:\t"; for(int i=0; i<pos; ++i) cout<<" "; cout<<pal<<"\n"<<endl; } else cout<<"The string contains no palindromes!\n"<<endl; } return(0); } Example output: Enter a string: Madam, I'm Adam Palindrome: Madam, I'm Adam Enter a string: Madam, I'm Adam is a palindrome Palindrome: Madam, I'm Adam Enter a string: In girum imus nocte et consumimur igni Palindrome: In girum imus nocte et consumimur igni Enter a string: 0123456765432 Palindrome: 23456765432 Enter a string: Press any key to continue . . .


Code for palindrome checking in C programming?

bool is_palindrome (char* str) { if (str==0) return false; int len = strlen (str); if (len==0) return false; int len2 = 0; char* str2 = malloc (len + 1); char* begin; char* end; char c; for (int i=0; i<len; ++i) { c = tolower (str[i]); if ((c>='a' c<='z') (c>='0' c<='9')) str2[len2++] = c; } begin = str2; end = begin+len2-1; while ((*begin==*end) && (begin<end)) { ++begin; --end; } free str2; result = end<=begin; }


Program to check whether a number is a palindrome or not using functions?

There are several ways to determine if a string is a palindrome or not. Typically, you must first ignore all spacing, capitalisation and punctutation within the string, which can be done by copying the string, character by character, ignoring all non-alphanumeric characters. You then point to the first and last characters in the modified string and, so long as both characters under the pointers are the same, work the pointers towards the middle of the string until the pointers either meet in the middle or they pass each other. That is, if the string has an odd count of characters, the pointers will meet at the middle character, otherwise they will pass each other. At that point you can say with certainty the string is a palindrome. If the characters under the pointers differ at any time, then the string is not a palindrome. This is fairly straightforward to program. A more interesting problem is when you have to locate the longest palindrome within a string which is not itself a palindrome. For instance, the string "Madam, I'm Adam is a palindrome" is not a palindrome, but it does contain one: "Madam I'm Adam". In this case we cannot point to the first and last characters and work towards the middle. Instead, we have to test every possible substring of the string. We do this by starting at the first character and treat it as if it were actually the middle character of a palindrome, and then move our pointers to the left and right of this character while the characters match. When they no longer match, or one of the pointers has reached either end of the string, we store the longest palindrome found up to that point and then move onto the next character and treat it as the middle character. If we continue in this manner, treating every character as if it were the middle character of a palindrome, we will eventually locate the longest palindrome. The problem with this approach is when the longest palindrome has an even number of characters instead of an odd number. To get around this we simply place a single space between each character, and treat each of those as being the middle character as well. When a palindrome is found, we simply remove the spaces. In this way we can use exactly the same algorithm to cater for both odd and even character palindromes. The only remaining problem is when we wish to print the palindrome itself. Since this will be a substring of the original string, we cannot use the modified string we used to locate the palindrome. One way to get around that is to store the original positions of each letter in an array of indices, and use that array to determine where the substring lies with in the original string. The following program demonstrates this technique in full. The key function is the ispalindrome() function, which accepts a lower-case copy of the string (including the original spacing an punctuation), and a vector that contains the indices of each letter within the string (ignoring puctuation and spacing), separated by -1 values (representing the implied spaces between each letter). The pos value tells the function which index of the vector is to be treated as the middle character of the potential palindrome, while x and y are output parameters that determine the start and end of the palindrome within the vector. The function returns true if a palindrome was found, and the x and y values can be used to extract the palindrome from the original string, using the indices stored in the vector. Note that when the search for a palindrome fails, we step back the x and y indices by one, and if the vector index is -1, then we step back another index. We then test the x and y values to see if they indicate a palindrome was found or not. The strip() function is another key function. This generates the vector from the lower case copy of the original string. Although we could eliminate the -1 values at the start and end of the vector, it's simpler to just leave them in. You will note that the program can cater for strings that are themselves palindromes, as well as strings that contain palindromes. #include<iostream> #include<string> #include<vector> using namespace std; string input_string(string prompt) { cout<<prompt<<":\t"; string input; getline(cin, input, '\n'); return(input); } void convert_tolower(string& s) { for(string::iterator i=s.begin(); i!=s.end(); ++i) *i=tolower(*i); } vector<int> strip(const string& s) { vector<int> v; v.push_back(-1); for(int i=0; i<s.size(); ++i) { if((s[i]>='a' && s[i]<='z') (s[i]>='0' && s[i]<='9')) { v.push_back(i); v.push_back(-1); } } return(v); } bool ispalindrome(const string s, const vector<int> v, int pos, int& x, int& y) { for(x=pos,y=pos; x>=0 && y<v.size(); --x, ++y) if( v[x]!=-1 && ( s[v[x]]!=s[v[y]] )) break; ++x, --y; if( v[x]==-1 ) ++x, --y; return(x>=0 && x<y && y-x>1); } int main() { string input; while(1) { input=input_string("Enter a string"); if(input.size()==0) break; string copy(input); convert_tolower(copy); vector<int> v=strip(copy); string pal; int pos=0; for(int i=0; i<v.size(); ++i) { int start=0, end=0; if( ispalindrome( copy, v, i, start, end)) { string tmp( input.substr(v[start],v[end]-v[start]+1)); if( tmp.size() > pal.size() ) { pal = tmp; pos = v[start]; } } } if( pal.size() ) { cout<<"Palindrome:\t"; for(int i=0; i<pos; ++i) cout<<" "; cout<<pal<<"\n"<<endl; } else cout<<"The string contains no palindromes!\n"<<endl; } return(0); } Example output: Enter a string: Madam, I'm Adam Palindrome: Madam, I'm Adam Enter a string: Madam, I'm Adam is a palindrome Palindrome: Madam, I'm Adam Enter a string: In girum imus nocte et consumimur igni Palindrome: In girum imus nocte et consumimur igni Enter a string: 0123456765432 Palindrome: 23456765432 Enter a string: Press any key to continue . . .


Calculate no of palindromes in given string palindrome?

A string of length n always has at least n palindromes given that any string of length 1 is a palindrome. Thus we initialise the count to n and test all substrings of length 2 or more: int count_palindromes (char* str) { if (!str) return 0; int n = strlen (str); char* sub = malloc (n+1); // allocate memory for substring (+1 to include null-terminator) memset (sub, 0, n+1); // zero the memory int count = n; for (int len=2; len<=n; ++len) { // length of string (2 to n) for (int i=0; i<=n-len; ++i) { // index of start character memcpy (sub, str+i, len); // copy len characters from str+i if (is_palindrome (sub)) ++count; // test the substring } free (sub); sub = NULL; return count; } Usage: assert (count_palindromes ("racecar") == 10); assert (count_palindromes ("abcde") == 5); Note that counting palindromes in this manner is not generally useful. For every palindrome of length n>2 there has to be at least n+n/2 palindromes within it, and we can easily compute this figure without testing every substring. E.g., the palindrome "racecar" includes the palindromes "racecar", "aceca", "cec", "r", "a", "c", "e", "c", "a" and "r", but the only one we're actually interested in is "racecar" itself. To achieve this we simply examine those substrings with either 2 or 3 characters. That is, when we find "cec" in the middle of "racecar", there's no need to test for "aceca" or "racecar" because "cec" is common to all three. int count_palindromes (char* str) { if (!str) return 0; int n = strlen (str); if (n<2) return 0; char sub[4]; memset (&sub, 0, 4); int count = n; for (int len=2; len<=3; ++len) { for (int i=0; i<n-len; ++i) { memcpy (sub, str+i, len); if (is_palindrome (sub)) ++count; } return count; } Usage: assert (count_palindromes ("racecar") == 1); // "cec" assert (count_palindromes ("abbabcded") == 3); // "bb", "bab" and "ded" The is_palindrome() function has the following implementation: bool is_palindrome (char* str) { int x, y; if (!str) return false; int n = strlen (str); if (n<2) return true; // empty strings and single character strings are always palindromes x = 0; // point to first character y = n-1; // point to last character // work towards middle of string while characters are equal while (x<y && str[x]==str[y]) ++x, --y; return x>=y; // if the pointers met or passed one another, the string is a palindrome }


How long is a full role of string?

from 2M to 100M


Why The tension in any part of the string is equal to the force that pulls the string at the ends?

unless the string is broken up,the force of pulling will be applied along the continuous part of the string when the string is in full stretched condition.


Is the cello in the string family?

The cello is one of the 4 members of the string orchestra family. If you are talking about the full string family, it is viola, cello, bass, violin, piano, and guitar.