1. 程式人生 > >習題8-8 判斷迴文字串(20 分)

習題8-8 判斷迴文字串(20 分)

題目來源:https://pintia.cn/problem-sets/12/problems/342

本題要求編寫函式,判斷給定的一串字元是否為“迴文”。所謂“迴文”是指順讀和倒讀都一樣的字串。如“XYZYX”和“xyzzyx”都是迴文。

函式介面定義:

bool palindrome( char *s );

函式palindrome判斷輸入字串char *s是否為迴文。若是則返回true,否則返回false

裁判測試程式樣例:

#include <stdio.h>
#include <string.h>

#define MAXN 20
typedef enum {false, true} bool;

bool palindrome( char *s );

int main()
{
    char s[MAXN];

    scanf("%s", s);
    if ( palindrome(s)==true )
        printf("Yes\n");
    else
        printf("No\n");
    printf("%s\n", s);

    return 0;
}

/* 你的程式碼將被嵌在這裡 */

輸入樣例1:

thisistrueurtsisiht

輸出樣例1:

Yes
thisistrueurtsisiht

輸入樣例2:

thisisnottrue

輸出樣例2:

No
thisisnottrue
bool palindrome( char *s )
{
	int i,n;
	n=strlen(s);
	if(n%2)
	{
		for(i=0;i<(n-1)/2;i++)
		{
			if(s[i]==s[n-1-i])
			continue;
			else
			return false;
		}
	}
	else
	{
		for(i=0;i<n/2;i++)
		{
			if(s[i]==s[n-1-i])
			continue;
			else
			return false;
		}
	}
	return true;
}