將兩個字串中較短的字串進行分解,分解為不同長度的子串,並儲存在set 容器中,這樣既可取出相同子串,同時也可以將子串排序,方便查詢。利用string類自帶的find函式查詢重複子串。
#include
#include
#include
#include
using
namespace
std;
int lcs(string sa,string sb)
else
for(string::size_type i=0;ifor(string::size_type j=2;j<=s2.size()-i;j++)//子串長度
for(set
::iterator it=suff.begin();it!=suff.end();++it)}}
cout
}int main()
//最長公共子串
int com_suffix(char *p,char *q)
while(*q)
}while(*p)
}if(count==1)
return len;
return0;}
int lcs(char *x,char *y)
}printf("%.*s\n",maxlen,suff[maxindex]);
delete arr;
return maxlen;
}int main()
求兩個字串的距離
給定兩個長度相等的,由小寫字母組成的字串s1和s2,定義s1和s2的距離為兩個字串有多少個位置上的字母不相等。現在牛牛可以選定兩個字母x1和x2,將s1中的所有字母x1均替換成x2。x1和x2可以相同 牛牛希望知道執行一次替換之後,兩個字串的距離最少為多少。x1和x2是自己求的,未知 輸入 aaa ...
使用SQL求兩個字串相同的子串
求兩個字串之間相同的子串,例如 abcefg 和 dxefefg 那麼相同的子串有 e ef efg f fg g 等字串。使用如下sql來實現 主要是取全排列的方法,我使用了 例如str2是 abc 首先根據長度構造出結果集a,a有三行,值分別是1,2,3,然後a和b做笛卡爾乘積並且去掉a b的情...
求兩個字串的最大公共子串
求兩個串中的第乙個最長子串。如 abractyeyt dgdsaeactyey 的最大子串為 actyet 有乙個演算法很巧妙 把字串1 長度m 橫排,串2 長度n 豎排,得到乙個m n的矩陣c,矩陣的每個元素的值如下,如果m i n j 則c j i 1,否則,c j i 0。然後找出矩陣中連續是...