-
C语言函数——判断回文字符串
2019-04-29 17:55:541-2 判断回文字符串 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: >bool palindrome( char *s );...判断回文字符串
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“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
thisisnottruebool palindrome( char *s ) { int i=0,j=strlen(s)-1; while(i<j){ if(s[i]!=s[j]) return 0; i++; j--; } return 1; }
-
C语言:判断回文字符串
2021-04-11 22:58:09本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符...本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“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 result=1;//先假设其是回文 char new[MAXN];//存倒序的字符串 int i; /*先数一下该字符串的字数*/ for(i=0;i<MAXN-1;i++) { if(s[i]=='\0')//当到该字符串的结尾时退出 break; } i--; /*把字符串倒过来存入新数组*/ int j=0; for(;i>=0;i--) new[j++]=s[i]; /*逐字比较*/ for(int k=0;k<j;k++) { if(new[k]!=s[k]) { result=0; break; } } if(result!=0) return true; else return false; }
额。。这个与上一题挺像的,两个数组,逐步比较,没有很难嘿!
-
【C语言】判断回文字符串
2020-08-02 15:13:50本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串...本题来源于浙大PTA题库
这是一道简单的字符串处理题
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“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 n=strlen(s),i; for(i=1;i<=n/2;i++) /*循环偶数个字符的一半,基数个字符的一半减一*/ { if(s[i-1]!=s[n-i]) return false; /*当与(对面的数不相等)返回错误*/ } return true; /*循环结束全部相等,返回正确*/ }
-
C语言-判断回文字符串【函数+指针】(一)
2018-12-15 23:15:536-1判断回文字符串(20 分) 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s )...例题一:
6-1 判断回文字符串 (20 分)
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“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
这道题给的裁判测试样例是使用C语言的指针写的,所以,在函数中,我们依然还是使用指针操作比较简单,我先把源码放在下面我们再来分析:
bool palindrome(char *s){ //定义返回值为布尔类型的函数 char *a = s; //定义一个新指针指向s int i = 0,j=0,k=0; while (*a != '\0'){ //使用指针a最字符串进行遍历,统计字符串位数 a++; i++; } a--; //因为最后一位为'\0'所以减一位 while (*s != '\0'){ //进行两个比较 if (*s == *a){ k++; } else{ return false;//在遍历过程中有对应不相等的项,直接返回false } s++;//指针s正向遍历与a进行比较 a--;//指针a反向遍历与s进行比较 } if (k == i){ //如果k与i相等则说明在遍历过程中字符串正向与反向对应相等,返回true return true; } }
现在来讲思路:回文字符串的意思就是字符串首尾对应相等,那么我们在处理该问题的过程中就要存在一个正向与反向的问题,所以说在程序中,我们重新定义一个指针a指向s,重新定义一个指针的目的就是为了做比较来使用,因为指针不像数组那样可以直接逆向进行操作,现在有了一个新指针,其实在新定义的指针a与指针s完全相等,但是执行统计字符之后,指针a指向的是字符串的最后一个字符。首先在函数里面,先对字符串进行字符个数统计,统计结束之后,保存统计数据,后面会用到。然后就是两个字符串的双向比较了,在比较过程中一旦发现不相等的情况直接返回false,表是该字符串不是回文串,在没有发现此类情况的时候,一直进行这比较,并且两个指针指向的字符始终进行着是否等价的比较,直至指针s指向了字符串的结束符。最后再加一个判断,就是k和i是否相等,为什么k和i相等了,就说明字符串是回文串了呢,因为在程序中呢,k始终是记录着s与a是否相等的,而i呢又是遍历字符串之后整个字符串的长度,所以说,只要判断了k和i是否相等,就能判断该字符串是否为回文字符串。
-
java 栈 队列 回文_C语言利用队列和栈实现回文判断
2021-03-09 06:14:16回文判断问题描述算法思想函数模块测试数据C语言程序头文件Stack.hStack.hStack.hLqueue.hLqueue.hLqueue.h主文件实验结果问题描述\quad回文是指一个字符序列以中间字符为基准两边字符完全相同。要求程序从键盘输入... -
PTA|《C语言程序设计(第3版)》习题8-8 判断回文字符串 (20分)
2020-02-09 16:59:15本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串... -
PTA|浙大版《C语言程序设计(第3版)》题目集:习题8-8 判断回文字符串
2020-03-26 14:19:31本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome... -
(C语言)判断回文字符串 (20分)
2020-06-05 07:29:36本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串... -
浙江大学PTA C语言 实验8.1 指针与数组 6-5 判断回文字符串
2020-12-07 18:35:326-5 判断回文字符串 (20分) 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); ... -
PTA:判断回文字符串 (15分)(C语言)
2020-04-08 22:48:10本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串... -
判断回文字符串(函数实现)
2020-12-20 16:12:37编写一个可以判断回文字符串的函数 要求***利用一个函数来判断一串字符是否回文*** 思想:设置两个工作指针p1,p2分别指向字符串首尾,进行字符逐一比较,若有一个字符不相等,标记置为1,标记若为0,则为回文字符串 ... -
浙大版《C语言程序设计(第3版)》题目集 习题8-8 判断回文字符串 (20分)
2020-04-07 22:54:37#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 (pali...