백준 25501 c++
#include <iostream>
#include <cstring>
//#include <string>
#pragma warning (disable:4996);
using namespace std;
int input(int lower, int upper);
void input_string(char** str, int size);
//void input_string(string* str, int size);
void check_palindrome(char** str, int size);
//void check_palindrome(string* str, int size);
int isPalindrome(const char* s);
int recursion(const char* s, int l, int r);
int counter = 0;
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int T, i;
//string* str;
char** str;
T = input(1, 1000);
//str = new string[T];
str = new char* [T];
for (i = 0; i < T; i++)
{
str[i] = new char[1001];
}
input_string(str, T);
check_palindrome(str, T);
//delete[] str;
for (i = 0; i < T; i++)
{
delete[] str[i];
}
delete[] str;
return 0;
}
int input(int lower, int upper)
{
//cout << "input()" << endl;
int A;
while (1)
{
cin >> A;
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
void input_string(char** str, int size)
//void input_string(string *str, int size)
{
int i;
char temp[1001];
for (i = 0; i < size; i++)
{
cin >> str[i];
cin >> temp;
strcpy(str[i], temp);
}
return;
}
void check_palindrome(char** str, int size)
//void check_palindrome(string* str, int size)
{
int i;
//const char* temp;
for (i = 0; i < size; i++)
{
counter = 0;
//temp = str[i].c_str();
cout << isPalindrome(str[i]) << " " << counter <<"\n";
//cout << isPalindrome(temp) << " " << counter << "\n";
}
}
int recursion(const char* s, int l, int r)
{
counter++;
if (l >= r)
return 1;
else if (s[l] != s[r])
return 0;
else
return recursion(s, l + 1, r - 1);
}
int isPalindrome(const char* s)
{
return recursion(s, 0, strlen(s) - 1);
}