回文字符串
来源:互联网 发布:linux 多国 语言 查看 编辑:程序博客网 时间:2024/06/06 14:00
题目描述:
“回文字符串”是指一个字符串从左向右或者从右向左都相同,如abccba,aba等等,但是如果含有其他字符通过删减也可以构成回文字符串,如ajbkcuicpbya->abccba,删掉了j,k,u,i,p,y,所以通过算法求给定的一个字符串中最长的回文字符串。
如:ajbkcuicpbya->abccba
含有abba,cc,abccba等,只有abccba是最长的。
思路:
将输入字符串倒置,与原始字符串比较,求其最长公共子序列。
#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 1024int main(){ char str[N]; char temp[N]; char result[N]; char maxStr[N]; int maxLen = -1; int i,j = 0,k; scanf("%s",str); //printf("%s",str); int head,tail; //字符串倒置 for (i=strlen(str)-1; i>=0; i--) { temp[j ++] = str[i]; } temp[j] = '\0'; for (i=0; i<strlen(str); i++) { int count = 0; k = i; memset(result,0,N*sizeof(char)); for (j=0; j<strlen(temp) && k < strlen(str); j++,k++) { if (str[k] == temp[j]) { result[count] = str[k]; count ++; } } if (count > maxLen) { maxLen = count; result[count] = '\0'; memcpy(maxStr,result,N*sizeof(char)); } } printf("length = %d,str = %s\n",maxLen,maxStr); printf("\n"); system("pause"); return 0;}/*ajbkcuicpbyalength = 6,str = abccbaasdfghjkllength = 1,str = gsadeferfrtgtgtgtlength = 7,str = tgtgtgt*/
1 0
- 还是回文 && 回文字符串
- 字符串回文
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 字符串回文
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 【OkHttp3源代码分析】(二)Request的enqueue
- java多线程调用 单例类中一个的方法
- 模板方法模式
- linux下core文件调试方法
- C++第3次实验(提高班)—类和对象2
- 回文字符串
- Parsing XML in Python&Assignment
- Java的Integer缓存
- 在路上, 英语
- 1041. 考试座位号(15)
- JavaScript的函数
- 在windows下使用postgreSQL导入tpch的数据表
- cmake链接MySQL分析
- oj问题一-结构体---学生信息排序