-
编程判断字符串是否为回文 判断一个字符串是否是回文,例如单词‘level’
2017-11-30 20:53:53#include #include int main() { char a[100]= {0}; int i = 0; int len = 0; printf("please input character string:\n");...//计算输入字符串的长度; for(i = 0; i //只需要判断#include <stdio.h>
#include <string.h>
int main()
{
char a[100]= {0};
int i = 0;
int len = 0;
printf("please input character string:\n");
gets(a);
len = strlen(a); //计算输入字符串的长度;
for(i = 0; i < (len / 2); i++) //只需要判断前一半(len/2)长度就好了
{
if(a[i] != a[len - 1 - i]) //判断是否为回文数;
{
printf("不是回文数\n");
return 0;
}
}
printf("是回文数\n");
return 0;
} -
编程判断字符串是否为回文
2017-05-13 22:04:26判断一个字符串是否为回文,比如说单词“level”就是回文。我们可以从一个字符串的两端进行遍历比较,例如对于level我们可以进行下面的步骤。 (1)计算需要比较的次数。由于“level”字符串长度为5,是奇数,因此...判断一个字符串是否为回文,比如说单词“level”就是回文。我们可以从一个字符串的两端进行遍历比较,例如对于level我们可以进行下面的步骤。
(1)计算需要比较的次数。由于“level”字符串长度为5,是奇数,因此比较两次
(2)第一次比较:看“level”的第一个字符与最后一个字符是否相等,若相等,则进行第二次比较。
(3)第二次比较:看“level”的第二个字符与倒数第二个字符是否相等,若相等则是回文
如果在上面的比较过程中有一个不相等,则字符串不是回文。根据上面的思路,我们可以写出如下的程序代码:
这个程序中的IsRevStr()函数用于判断字符串是否为回文字符串,如果是则返回1,否则返回0.输出结果:#include <iostream> using namespace std ; int IsRevStr(char *str ) { int i,len ; int found = 1 ; //1表示是回文 0则不是 if(str == NULL) { return -1 ; } len = strlen(str) ; for(i = 0 ;i<len/2;i++) //遍历中如果发现相应的头尾字符串不等,则字符串不是回文 { if(*(str+1) != *(str+len-i-1)) { found = 0 ; break ; } } return found ; } int main() { char str1[10] = "1234321" ; char str2[10] = "1234221" ; int test1 = IsRevStr(str1) ; int test2 = IsRevStr(str2) ; cout<<"str1 is "<<(test1 == 1 ? "" : "not")<<"reverse string."<<endl ; cout<<"str2 is "<<(test2 == 1 ? "" : "not")<<"reverse string."<<endl ; return 0 ; }
1 str1 is reverse string.
2 str2 is not reverse string.
-
基于数组判断字符串是否是回文
2021-01-18 07:13:24“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B...“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:- 在A的第一个字母之前: “baba” 不是回文
- 在第一个字母‘a’之后: “abba” 是回文
- 在字母‘b’之后: “abba” 是回文
- 在第二个字母’a’之后 “abab” 不是回文
所以满足条件的答案为2
输入描述:
每组输入数据共两行。
第一行为字符串A
第二行为字符串B
字符串长度均小于100且只包含小写字母输出描述:
输出一个数字,表示把字符串B插入字符串A之后构成一个回文串的方法数**理解:**本题将字符串B插入A是将B整体插入,放在某个位置上,算法采用的思想是先将B插入A的不同位置,然后再用回文检测算法 检验字符串是否是回文,A 和 B都是放在数组中的,开辟一个新的数组空间(线性空间),满足新的空间能放下A和B数组,当数据比较大的时候,这种方法需要开辟较大的线性空间,实用价值不高,可以用来解决算法题,其他的解题思路
示例1
输入;
aba
b
输出:
2#include <stdio.h> /*int strlen(char s[]) { int LA=0; int m=0; while(s[m]!='\0') { LA++; m++; } return LA; }*/ int Huiwen(char s[]) { int l = strlen(s); int i; for( i=0;i<l/2;i++) { if(s[i]==s[l-i-1]); //从两端像中间开始检测 else break; } if(i==l/2) return 1; //能跑到中间说明是回文串 else return 0; } int main() { char A[100],B[100]; char C[200] = {'\0'}; int sum = 0; gets(A); gets(B); int LenA = strlen(A); int LenB = strlen(B); for(int i=0;i<=LenA;i++) { for(int j=0;j<i;j++) { C[j]=A[j];//继续把A的字符i之前的字符串接入在B的前面 } for(int k=i,v=0;v<LenB;k++,v++) { C[k]=B[v];//把B字符串插入A的i位置 } for(int k=LenA+LenB-1;k>i+LenB-1;k--) { C[k] = A[k-LenB]; //把A中i后的字符串接到B的后面,从最后一个往前接 } sum+=Huiwen(C); } printf("%d\n",sum); return 0; }
-
判断一个字符串是否为回文
2014-11-18 11:37:51回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。比如level 、“aaabbaaa” 判断字符串是否为回文有几咱方式: tx回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。比如level 、“aaabbaaa”
int isHW(const char *str){
int len = strlen(str);
for(int i=0;i<=len/2;i++){
if(str[i]!=str[len-i-1]){
return -1;
}
}
return 1;
}
int main(){
char s[100];
gets(s);
int result = isHW(s);
if(result == 1)
{
printf("字符串是回文");
}
else
{
printf("字符串不是回文"); }
}
或者也可用递归方法判断
#include <iostream>
using namespace std;
int fun(int low, int high, char *str, int length)
{
if (length == 0 || length == 1)
return 1;
if (str[low] != str[high])
return 0;
return fun(low+1, high-1, str, length-2);
}
int main()
{
char str[]="aaabdaaa";
int length = strlen(str);
//返回1代表是, 0代表不是
cout << fun(0, length-1, str, length) << endl;
return 0;
}ps:字符串翻转也可用同样的方式,不是比较字符是否一样,而是直接交换字符。
转载自:http://www.blogjava.net/zongbao/archive/2012/08/08/385095.html和http://blog.csdn.net/cbs612537/article/details/8217425
-
C/C++面试:18---判断字符串是否为回文、计算含有中文的字符串长度、找出01字符串中0和1连续出现的最大次数
2020-07-24 15:27:56一、判断字符串是否有回文 例如单词"level"就是回文 编码实现 我们可以从一个字符串的两端进行遍历比较。例如对于"level"字符串: 1.计算需要比较的次数。由于"level"长度为5,是奇数,因此比较两次 2.第一次... -
判断字符串_判断回文字符串、回文链表、回文数(python实现)
2021-01-12 17:37:51即是对称结构判断回文字符串方法一:方法二:判断回文链表思路我们需要找到链表中点(快慢指针法)将链表后半段倒置逆序排序将前半段和后半段遍历比较,判断是否为回文链表,偶数情况,使用偶数定位中点策略,要确定是... -
判断一个字符串是否为回文字符串(charAt与toCharArray() 两种方法)
2020-03-18 23:11:59判断一个字符串是否为回文字符串(charAt与toCharArray() 两种方法) 转载请标注谢谢 定义 首先咱们要知道什么是回文字符串,“回文字符串”是一个正读和反读都一样的字符串。 比如“level”或者“noon”等就是回文... -
23.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0...
2020-05-13 16:52:0523.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是... -
C语言编程>第十一周 ④ 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数...
2021-01-02 15:50:12例题:请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL,而字符串123312就不是回文。... -
H面试程序(26):判断字符串是否定回文字符串
2013-09-06 15:25:34所谓回文字符串,就是一个字符串,从左到右读...题目:判断一个字符串是否为回文 解法:两端扫描 #include #include int huiwen( int high, int low , char * a) //从两边扫描, num是一个中点位置 { assert(a); -
C语言判断输入字符是否为回文串
2019-02-20 15:25:30判断输入字符串(maxsize=255)是否是回文串(level,noon即为回文串),是则输出YES,不是输出NO #include <stdio.h> #include <string.h> #define max 256 int main() { char a[max]... -
判断字符串_python实现--判断回文字符串、回文链表、回文数
2021-01-10 21:40:49判断回文字符串方法一:方法二:判断回文链表思路我们需要找到链表中点(快慢指针法)将链表后半段倒置逆序排序将前半段和后半段遍历比较,判断是否为回文链表,偶数情况,使用偶数定位中点策... -
判断一个字符串是否回文
2017-04-10 16:28:45比如”level” 、 “aaabbaaa”题目:判断一个字符串是否为回文 解法:递归、循环 循环的方法根据传参的不同,分为两种,如下: 循环一 bool IsPalindereme(char* str,size_t size) { if(str==NULL || size == 0)... -
回文串问题:给定一个字符串,判断其是否为回文串
2021-03-04 17:48:31“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 输入格式: 一行字符串。 输出格式: 如果是回文串,输出“YES”,否则输出“NO”。 输入样例: 12321 输出样例: ... -
oracle判断奇数偶数_判断回文字符串、回文链表、回文数(python实现)
2020-12-05 17:03:16即是对称结构判断回文字符串方法一:方法二:判断回文链表思路我们需要找到链表中点(快慢指针法)将链表后半段倒置逆序排序将前半段和后半段遍历比较,判断是否为回文链表,偶数情况,使用偶数定位中点策略,要确定是... -
python实现--判断回文字符串、回文链表、回文数
2020-06-11 17:11:00所谓回文字符串,就是正读和反读都一样的字符串,... 将前半段和后半段遍历比较,判断是否为回文链表,偶数情况,使用偶数定位中点策略,要确定是返回上中位数或下中位数 注意事项: 快慢指针定位中点时要区分奇偶.. -
判断一个字符串是不是回文
2017-03-05 20:47:55比如”level” 、 “aaabbaaa”题目:判断一个字符串是否为回文解法:递归递归的作用在于把问题的规模不断缩少,直到问题缩少到能简单地解决问:如何缩少问题规模?答:通过观察可以知道,一个回文字符串其中内部也... -
判断回文字符串
2016-09-12 18:12:25题目:判断一个字符串是否为回文 解法:递归 递归的作用在于把问题的规模不断缩少,直到问题缩少到能简单地解决 问:如何缩少问题规模? 答:通过观察可以知道,一个回文字符串其中内部 -
判断回文数字 、回文字符串
2020-03-13 11:25:09编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。如"level"、“ABCCBA”都是回文 解题思路: 定义两个指针p,q,p指针指向第一个字符,q指向最后一个字符,p<=q时,依次比较... -
7-1 判断回文字符串
2020-11-26 23:22:09输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。 输入格式: 输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 输出格式: 输出在第1... -
codeup5901【字符串】回文串
2019-12-26 11:32:08“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 输入 一行字符串,长度不超过255。 输出 如果是回文串,输出“YES”,否则输出“NO”。 样例输入 12321 样例输出 ... -
C语言-判断回文字符串(二)
2018-12-15 23:42:01输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。 输入格式: 输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 输出格式: 输出在... -
Python编程PTA题解——判断回文字符串
2020-03-21 14:52:12Description:输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。 Input:输入仅一行,输入一个不超过80个字符长度的、以回车结束的非空字符串。 Output:第... -
回文字符串
2020-02-15 17:08:05回文字符串 如果一个字符串从左往右...输入一个字符串,判断它是否为回文字符串。如果是回文字符串,输出yes;如果不是回文字符串,输出no。 s=input() s1=list(s) s1.reverse() s2=list(s) if s1==s2: print("yes... -
用递归判断回文字符串
2013-09-18 06:35:05题目:判断一个字符串是否为回文 解法:递归 递归的作用在于把问题的规模不断缩少,直到问题缩少到能简单地解决 问:如何缩少问题规模? 答:通过观察可以知道,一个回文字符串其中内部也是回文。所以,我们只... -
[PTA C语言]判断回文字符串——编程题
2020-12-05 08:55:57输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。 输入格式: 输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 输出格式: 输出在第1... -
7-1 判断回文字符串的Python解决办法
2020-12-02 20:49:38输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。 输入格式: 输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 输出格式: 输出在第1... -
用递归判断回文字符串 .
2014-05-16 15:46:23题目:判断一个字符串是否为回文 解法:递归 递归的作用在于把问题的规模不断缩少,直到问题缩少到能简单地解决 问:如何缩少问题规模? 答:通过观察可以知道,一个回文字符串其中内部也是回文。所以,...