判断是否为回文

判断是否为回文

时间: 1ms        内存:128M

描述:

编写一个程序,判断一个字符串是否为“回文”(顺读和倒读都一样的字符串称为“回文”).

输入:

nameeman

输出:

是回文

示例输入:

dutgielk

示例输出:

不是回文

提示:

参考答案(内存最优[752]):

#include<stdio.h>  
#include<string.h>  
int f(char a[])  
{  
    int i,n;  
    n=strlen(a);  
    for(i=0;i<n/2;i++)  
    {   if(a[i]!=a[n-i-1])  
    {return 0;}  
    }  
	return 1;  
}  

int main()  
{  
    int m;  
	char a[500];  
    
	
	
	
	while(gets(a)) 
	{m=f(a);  
	if(m==0)  
		printf("不是回文\n");  
	else
		printf("是回文\n"); 
	}
	
    return 0;  
}

参考答案(时间最优[0]):

/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2013年 12月3 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,
           后面紧跟着是n个字符串,每个字符串的长度不超过500。
*问题描述:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
            请写一个程序判断读入的字符串是否是“回文”。
*程序输出:如果一个字符串是回文串,则输出"yes",否则输出"no".
*问题分析:
*算法设计:
*/
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
    int l,i;
    string a;
    bool flag;
    while(cin>>a)
    {
    l=a.size();
    flag=true;
    for(i=0;i<l;i++)
    {
        if(a[i]!=a[l-i-1])
        {
            flag=false;
            break;
        }
    }
    if(flag)
    cout<<"是回文"<<endl;
    else if(!flag)
    cout<<"不是回文"<<endl;
    }
   	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注