2013-11-03 实验之最大公共子串(思维逻辑题)
2013-11-03 14:35
429 查看
题目:求字符串的最大公共子串(两个为例)
思路:将长度最小的子串,依次以其长度大小递减,取相应子串,判断该子串是否在另一个串中。
程序实现:
思路:将长度最小的子串,依次以其长度大小递减,取相应子串,判断该子串是否在另一个串中。
程序实现:
#include<stdio.h> #include<stdlib.h> #include<string.h> int get_length_of_character(char *s) { int count = 0; while(*s++ != '\0'){ count++; } return count; } int get_sub_character_of_character(char *s, int k, char *stemp) { int i; int j; int length = get_length_of_character(s); char *temp = (char *)malloc(sizeof(char) * (k+1)); int count = 0; for(i = 0;i < length; i++){ for(j = 0;j < k; j++){ if(j+i < length){ temp[j] = s[j+i]; }else { break; } } if(j == k){ temp[k] = '\0'; //printf("sub Character %s \n", temp); if(strstr(stemp, temp)){ printf("The Sub Character is: %s \n", temp); free(temp); return 1; } }else{ break; } } free(temp); return 0; } int main(void) { int maxlength = 256; char *s1 = (char *)malloc(sizeof(char) * maxlength); char *s2 = (char *)malloc(sizeof(char) * maxlength); printf("Please input two character as follows:\n"); scanf("%s", s1); scanf("%s", s2); char *s = s1; char *stemp = s2; int length1 = get_length_of_character(s1); int length = length1; int length2 = get_length_of_character(s2); //printf("Character %s , length %d\n", s1, length1); //printf("Character %s , length %d\n", s2, length2); if(length2 < length1){ s = s2; length = length2; stemp = s1; } int i; for(i = length; i >=1; i--){ if(get_sub_character_of_character(s, i, stemp)){ return 0; } } printf("no sub character\n"); return 1;
相关文章推荐
- 查找两个串的最大公共子串
- [置顶] 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离总结
- LeetCode-Maximum Subarray-最大子串和-逻辑
- sdutacm-最大公共子串
- js算法:动态规划-最大公共子串与最大子段和
- 经典问题LCS(最大公共子串问题)C代码实现
- 最大公共子串
- 2013-11-07 实验之火柴游戏(递归思维逻辑,转化思维,查找最优解思维)
- JavaScript求最大公共子串
- POJ 2774-Long Long Message(后缀数组+高度数组-最大公共子串长度)
- 面试题之求两个字符串的最大公共子串
- 求N个字符串的最大公共子串
- 动态规划经典题:给出两个字符串s1和s2,返回其中最大的公共子串
- 找出两个字符串中最大的公共子串的简单实现
- 找出两个字符串的最大公共子串
- 序列试题---最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离 .
- 挖坑 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- c 求最大公共子串的实现
- 最大子数组和、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和