1 /* 2 不使用c,c++库,?表示任意一个,*表示>=0任意,匹配规则要求匹配最大的字符子串,例如a*d ,匹配abbdd而非abbd,即最大匹配字符串 3 input :abcadefg 4 reule : a?c 5 ouput : abc 6 7 input : newsadfanewfdsdsf 8 rule :new 9 output: new new(最后一个不带空格,中间用空格分隔) 10 11 input : breakfastfood 12 rule : f*d 13 output: fastfood 14 15 input : aaa 16 rule :aa 17 outpur: aa 18 19 input : asdfgsdf 20 rule :* 21 output :asdfgsdf 22 方法有两种,一种采用递归的方法,最大匹配函数,然后用调用给匹配算法,该函数都返回匹配个数,不匹配返回-1,以input的第一个开始算起,不匹配直接 23 -1,然后顺序遍历方法。 24 方法二:采用dp解决,dp问题dp[i][j]表示字符串1和字符串2分别以i和j结尾匹配最大长度 25 */ 26 27 #include <iostream> 28 #include <string> 29 using namespace std; 30 31 int strleng(const char * A) 32 { 33 if(A==NULL) 34 return 0; 35 const char * p=A; 36 while(*p!='