2014-06-24 59 views
-6

我有2個字符串:在C++中獲取最大公共字符串?

「ABCDEF」和「123abcdef123」

我要尋找的是得到這些2個字符串作爲參數,返回最大的共同字符串的函數。所以在這種情況下,它應該返回「abcdef」。

在此先感謝。

+2

http://en.wikipedia.org/wiki/Longest_common_substring_problem –

+2

您是否嘗試過谷歌也許? https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=c%2B%2B%20find%20longest%20common%20string –

+0

我們不會做你的功課這裏。首先向我們展示一些努力。 – zoska

回答

-1

答:

常見字符串(字符串第一,第二串){

string lcsub, max; 

for (unsigned int i=0; i < first.length(); i++) 

    for (unsigned int j=0; j < second.length(); j++) 

     for (unsigned int k=1; k <= first.length() && k <= second.length(); k++){ 

      if (first.substr(i,k) == second.substr(j,k)){ 

       lcsub = first.substr(i,k); 

      } 

      else{ 

       if (lcsub.length() > max.length()) 

        max=lcsub; 

       lcsub=""; 

      } 

     } 

if (lcsub.length() > max.length()) 

    max=lcsub; 

lcsub=""; 

cout << "Longest Common Substring: " << max << endl; 
return max; 

}