编写一函数palindrome(char* s)用于判断任一字符串是否是回文(即顺序读与反序读一样,例如“ABCBA”
【问题描述】编写一函数palindrome(char*s)用于判断任一字符串是否是回文(即顺序读与反序读一样,例如“ABCBA”、“121”等)。【输入】输入文件有多组测...
【问题描述】
编写一函数palindrome(char* s)用于判断任一字符串是否是回文(即顺序读与反序读一样,例如“ABCBA”、“121”等)。
【输入】
输入文件有多组测试数据。第一行有一个整数n,它是测试数据组数,(n≤20)。接下来有n行,每行至多有m个字符,(m≤1000)。但是,每一行末尾处的换行字符不能作为这一行的内容。
【输出】
对每一组测试数据,在一行上输出你的判断结果。若是回文串,则输出“YES!”,否则输出“NO!”。
(主函数调用判别函数并输出判别结果)。
【输入样例】
3
ABCBA
121
ABCA
【输出样例】
YES!
YES!
NO! 展开
编写一函数palindrome(char* s)用于判断任一字符串是否是回文(即顺序读与反序读一样,例如“ABCBA”、“121”等)。
【输入】
输入文件有多组测试数据。第一行有一个整数n,它是测试数据组数,(n≤20)。接下来有n行,每行至多有m个字符,(m≤1000)。但是,每一行末尾处的换行字符不能作为这一行的内容。
【输出】
对每一组测试数据,在一行上输出你的判断结果。若是回文串,则输出“YES!”,否则输出“NO!”。
(主函数调用判别函数并输出判别结果)。
【输入样例】
3
ABCBA
121
ABCA
【输出样例】
YES!
YES!
NO! 展开
2个回答
展开全部
/* 判断回数 */
#include <stdio.h>
#include <string.h>
int palindrome(char *p) //判断是否是回数,是则返回1,不是则返回0
{
int i,j;
for(i=0,j=(int)strlen(p)-1;i<(int)strlen(p);i++,j--)
{
if(*(p+i)!=*(p+j))
return 0;
}
return 1;
}
void main()
{
int num,i;
char input[20][1000];
char (*str)[1000];
str=input;
scanf("%d",&num);
getchar();
for(i=0;i<num;i++)
gets(*(str++));
str=input;
printf("\n");
for(i=0;i<num;i++)
{
if(palindrome(*(str++)))
printf("YES!\n");
else
printf("NO!\n");
}
}
#include <stdio.h>
#include <string.h>
int palindrome(char *p) //判断是否是回数,是则返回1,不是则返回0
{
int i,j;
for(i=0,j=(int)strlen(p)-1;i<(int)strlen(p);i++,j--)
{
if(*(p+i)!=*(p+j))
return 0;
}
return 1;
}
void main()
{
int num,i;
char input[20][1000];
char (*str)[1000];
str=input;
scanf("%d",&num);
getchar();
for(i=0;i<num;i++)
gets(*(str++));
str=input;
printf("\n");
for(i=0;i<num;i++)
{
if(palindrome(*(str++)))
printf("YES!\n");
else
printf("NO!\n");
}
}
展开全部
import java.util.*;
public class Palindrome {
public static void main(String []args){
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
System.out.println(isPalindrome(normalise(sc.nextLine())));
}
}
public static boolean isPalindrome(String pal){
if (pal.length()<2){
return true;
}
else{
return pal.charAt(0)==pal.charAt(pal.length()-1) && isPalindrome(pal.substring(1,pal.length()-1));
}
}
public static String normalise(String mal){
String str="";
for (int i =0;i<mal.length();i++) {
if (Character.isLetter(mal.charAt(i))){
str+=mal.charAt(i);
}
}
return str.toLowerCase();
}
}
差不多就是你要的,至于method name 和 variable name 你可以自己改下哦
public class Palindrome {
public static void main(String []args){
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
System.out.println(isPalindrome(normalise(sc.nextLine())));
}
}
public static boolean isPalindrome(String pal){
if (pal.length()<2){
return true;
}
else{
return pal.charAt(0)==pal.charAt(pal.length()-1) && isPalindrome(pal.substring(1,pal.length()-1));
}
}
public static String normalise(String mal){
String str="";
for (int i =0;i<mal.length();i++) {
if (Character.isLetter(mal.charAt(i))){
str+=mal.charAt(i);
}
}
return str.toLowerCase();
}
}
差不多就是你要的,至于method name 和 variable name 你可以自己改下哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询