1394 - 回文字符串

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。

题目输入

输入包括一行字符串,其长度不超过1000。

题目输出

可能有多组测试数据,对于每组数据,如果是回文字符串则输出"Yes!”,否则输出"No!"。

输入/输出样例

输入格式

hellolleh
helloworld

输出格式

Yes!
No!

C语言解答

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
    char str[1001];
	int len,i,flag;
	while(gets(str))
	{
	   len=strlen(str);
	   flag=1;
	   for(i=0;i<len/2;i++)
	   {
		 if(str[i]!=str[len-i-1])	
		 {
		   flag=0;
		   break;
		 }
		 else
			 continue;
	   }
	   if(flag==1)
		   printf("Yes!\n");
	   else
           printf("No!\n");
	}
	return 0;
}

C++解答

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

bool IsPalindromeString(char str[]){
	int len = strlen(str);
	for(int i=0; i<len/2; i++){	// 这里实际上只要遍历到字符串长度的一般即可
		if(str[i] != str[len-i-1]){
			return false;
		}
	}
	return true;
}

int main(){
	char str[1100];
	while(gets(str)){
		puts(IsPalindromeString(str) ? "Yes!" : "No!"); // 使用一个条件运算符,简化代码
	}

	return 0;
}

Java解答

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {   
        Scanner in = new Scanner(System.in);
        
        String strSrc, strDst;
        StringBuffer sb;
        while(in.hasNextLine())
        {
            strSrc = in.nextLine();
            sb = new StringBuffer(strSrc);
            sb.reverse();
            strDst = sb.toString();
            
            if (strSrc.equals(strDst))
                System.out.println("Yes!");
            else
                System.out.println("No!");
        }
    }    
}