1394 - 回文字符串
时间限制 : 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!"); } } }