最长回文自负串1 求长度
来源:互联网 发布:中国域名注册机构 编辑:程序博客网 时间:2024/05/16 08:56
最长回文字符串1 求长度
//回文字符:在判断时,忽略所有的标点和空格,且忽略大小写,输出保持原样
//本程序为最长字符串1,只计算 长度//核心:开始操作前会有一个预处理,就是把所有的字符经行筛选和转换,并构造一个新字符组,把所有的字母转换成大写的字母存入到新字母组中
//然后,再一个一个的判断,这样会简单很多
#include<stdio.h>
#include<string.h>
#include<ctype.h>//isalpha,isdigit(检查参数c是否为阿拉伯数字0到9),isprint(功能:判断字符c是否为可打印字符(含空格)
//说明:当c为可打印字符(0x20-0x7e)时,返回非零值,否则返回零。) 的头文件
#define MAX 5000+10
char buf[MAX],s[MAX];
int main()
{
int n,m=0,max=0;
int i,j,k;
fgets(buf,sizeof(s),stdin);//fgets头文件是string.h,stdin是 键盘输入字符将其送到控制台、输入流。
n=strlen(buf); //计算长度
for(i=0;i<n;i++) //将不计算所有的其他符号,并且把所有的字母转换成大写
{
if(isalpha(buf[i])) // isalpha(c)这个函数判断c是不是小写字母,如果是的话,那么执行下一步,转换成大写字母
s[m++]=toupper(buf[i]);//用toupper()是将小写转换成大写(或者用s[m++]=buf[i]-'a'+'A'也可以),而tolower 是将大写转换成小写
}
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
int ok=1;
for(k=i;k<=j;k++)
{
if(s[k]!=s[i+j-k])
ok=0; //上面标记的是ok=1;所以在下面出现ok=0时,那么ok便不会改变成 1
}
if(ok && j-i+1>max)
max=j-i+1; //如果ok是恒等于1的,那么就说明在i~j之间,就是一个字符串,没有不符合的情况
}
printf("max=%d\n",max);
return 0;
}
0 0
- 最长回文自负串1 求长度
- manacher算法求最长回文串长度
- 求最长回文串长度板子
- Manacher算法求最长回文子串的长度
- POJ3974 求字符串的最长回文子串的长度
- Hdu 3068 Manacher算法求最长回文串长度
- 求字符串中的最长回文子串的长度
- Manacher算法实现求最长回文子串的长度
- 求 最长不重复子串的长度 & 最长回文的长度
- 求最长回文字串的长度
- 求最长回文串
- 求最长回文串
- 求最长回文串
- 最长回文子串长度
- 最长回文子串长度
- 判断是否包含回文、判断是否是回文、求最长回文、得到最长回文的长度
- 给定一个字符串,求它的最长回文子串的长度,并打印出最长回文子串
- 求最长回文子串
- c语言常见函数
- [leetcode-60]Permutation Sequence(C)
- OC/iOS获取随机数
- Lua中,泛型for循环遍历table时,ipairs和pairs的区别
- ScaleAnimation 缩放动画效果
- 最长回文自负串1 求长度
- Linux时间子系统之一:clock source(时钟源)
- 在画布上实现正弦曲线和文字的绘制
- JavaScript常用表单验证
- Day8.04
- 什么情况用递归
- CSS3 Media Query:移动 Web 的完美开端
- shell脚本算术运算
- 新手的linux之旅 二、进入启动盘界面