Предыдущий пост -

Тест слов на палиндром.

Рубрика: C++, Дата: 14 May, 2013, Автор:

Реализуйте простой тест слов, выявляющий, являются они палиндромами (например казак, ada, odo и.т.д.). Так же реализуйте простой тест целых чисел, выявляющий, являются ли эти числа палиндромами. Затем реализуйте проверку на палиндромность уже целых предложений. Обобщите эти решения.

Ну в общем от что у меня получилось, мы просто делим слово пополам и в цикле сравниваем символы, если символы разные, то это значит что слово не палиндром, простенькая задачка. От что вышло:

#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;

bool ifpol(string s)
{
	for(int i=0;i<s.length()/2;i++)
		if(s[i]!=s[s.length()-i-1])
			return false;

	return true;
}

bool ifIntPol(int n)
{
	string s;
	while(n!=0)
	{
		int b=n%10;
		//cout <<b<<endl;
		s+=b+'0';
		n/=10;
	}
	cout <<s<<endl;
	if(ifpol(s))
		return true;
	else
		return false;
}

int main()
{
	string str="helddsleh";
	if(ifpol(str))
		cout <<"str is palindrom"<<endl;
	else
		cout <<"str is not palindrom"<<endl;

	int num=11011;
	if(ifIntPol(num))
		cout <<"num is palindrom"<<endl;
	else
		cout <<"num is not palindrom"<<endl;

	return 0;
}

Ну мы будем проверку целых предложений на палиндромность реализовать считая что целое предложение должно быть палиндромом, то есть просто передаем строку функции, нам ведь без разницы какая длинна строки. Или можно было считать палиндромом предложение состоящее из слов палиндромов, тогда нам нужно было разбить предложение на слова и проверить каждое слово на палиндромность.

[youtube]http://www.youtube.com/watch?v=-_dcvMuK9uU[/youtube]

rss