最长回文子串
来源:互联网 发布:佳为软件称软件 编辑:程序博客网 时间:2024/06/05 10:13
#include<stdio.h>
int getsize(char *s)
{
int num = 0;
while (*s++!='\0')
{
num++;
}
return num;
}
int palindrome(const char *s, int n)
{
int i, j, max, c;
max = 0;
if (s == 0 || n < 1)
{
return 0;
}
for (i = 0; i < n; i++)
{
//回文长度为奇数:
for (j = 0; (i - j >= 0) && (i + j <= n); ++j)
{
if (s[i - j] != s[i + j])
{
break;
}
c = 2 * j + 1;
}
if (c > max)
{
max = c;
}
for (j = 0; (i - j >= 0) && (i + j + 1 < n); ++j)
{
if (s[i - j] != s[i + j + 1])
{
break;
}
c = 2 * j + 2;
}
if (c > max)
{
max = c;
}
}
return max;
}
//测试函数:
int main()
{
char s[] = "asfsa";
int num = getsize(s);
int num1;
num1=palindrome(s, num);
printf("%d", num1);
return 0;
}
int getsize(char *s)
{
int num = 0;
while (*s++!='\0')
{
num++;
}
return num;
}
int palindrome(const char *s, int n)
{
int i, j, max, c;
max = 0;
if (s == 0 || n < 1)
{
return 0;
}
for (i = 0; i < n; i++)
{
//回文长度为奇数:
for (j = 0; (i - j >= 0) && (i + j <= n); ++j)
{
if (s[i - j] != s[i + j])
{
break;
}
c = 2 * j + 1;
}
if (c > max)
{
max = c;
}
for (j = 0; (i - j >= 0) && (i + j + 1 < n); ++j)
{
if (s[i - j] != s[i + j + 1])
{
break;
}
c = 2 * j + 2;
}
if (c > max)
{
max = c;
}
}
return max;
}
//测试函数:
int main()
{
char s[] = "asfsa";
int num = getsize(s);
int num1;
num1=palindrome(s, num);
printf("%d", num1);
return 0;
}
0 0
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- ViewPager封装工具类: 轻松实现APP导航或APP中的广告栏
- 深入解读缓存(一)——缓存的力量
- Linux下解决Android SDK更新“ Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml ”的问题
- 算法基础总结
- NOIp 2007 树网的核
- 最长回文子串
- Future-多线程设计模式
- poj3259 Wormholes BellmanFord或SPFA
- 软件测试6--软件测试与软件质量
- 019.数组的复制
- UFT(Unified Function Testing)自动化测试工具简介
- 1019. 数字黑洞 (20)
- 微信开发之带参二维码的使用
- SimpleJdbc: 用于简化数据库操作的Java库