POJ 1458 Common Subsequence (暴力枚举)
2015-10-10 10:47
417 查看
//暴力枚举,穷举第一个字符串所有的子序列,对每个子序列检查是否也是第二个字符串的子序列,记录找到最长的子序列,会超时 #include <stdio.h> #include <string.h> #define MAX_LEN 1000 char str1[MAX_LEN]; char str2[MAX_LEN]; char stack[MAX_LEN]; int top; int lenOfCS;//length of longest commom subsequence int result; int compareStr2(){ int indexOfStr2 = 0; int i; for (i = 0; i < top; i++){ char cha = stack[i]; while (str2[indexOfStr2] != '\0' && str2[indexOfStr2] != cha) indexOfStr2++; if (str2[indexOfStr2] == '\0') return 0; } return 1; } void selectSubSequenceOfStr1(int index){ if (str1[index] == '\0'){ if (top <= result) return; if (compareStr2() == 1) result = top; return; } stack[top++] = str1[index]; selectSubSequenceOfStr1(index + 1); top--; selectSubSequenceOfStr1(index + 1); } int main(){ freopen("input.txt", "r", stdin); while (scanf("%s%s", str1, str2) != EOF){ top = 0; result = 0; selectSubSequenceOfStr1(0); printf("%d\n", result); } return 0; }
相关文章推荐
- 枚举的用法详细总结
- c#入门之枚举和结构体使用详解(控制台接收字符串以相反的方向输出)
- 理解C#中的枚举(简明易懂)
- C#枚举中的位运算权限分配浅谈
- C++基础入门教程(四):枚举和指针
- FileShare枚举的使用小结(文件读写锁)
- Java枚举类用法实例
- 枚举窗口句柄后关闭所有窗口示例
- javascript模拟枚举的简单实例
- 深入剖析JavaScript中的枚举功能
- 枚举和宏的区别详细解析
- 深入理解C#中的枚举
- C#实现获取枚举中元素个数的方法
- java中枚举的详细使用介绍
- java枚举的使用示例
- Java枚举详解及使用实例(涵盖了所有典型用法)
- 一个运用enum类型的Demo
- 枚举隐式派生于System.Enum
- 枚举的隐士转换跟显示转换
- Java 枚举7常见种用法