lintcode:Longest Common Substring

来源:互联网 发布:天心软件怎么用 编辑:程序博客网 时间:2024/06/07 16:27

Given two strings, find the longest common substring.

Return the length of it.

Example

Given A="ABCD"B="CBCE", return 2.

Note

The characters in substring should occur continuously in original string. This is different with subsequence.


class Solution {public:        /**     * @param A, B: Two string.     * @return: the length of the longest common substring.     */    int longestCommonSubstring(string &A, string &B) {        // write your code here                int sizeA = A.size();        int sizeB = B.size();        int  max_len = 0;                for (int i=0; i<sizeA; i++)        {            int  cur_i = i;            int  cur_len = 0;            bool match = false;                        for (int j=0; j<sizeB && cur_i<sizeA; j++)            {                if (A[cur_i] == B[j])                {                    if (!match)                    {                        match = true;                        cur_i = i+1;                        cur_len = 1;                    }                    else                    {                        cur_i++;                        cur_len++;                    }                                        max_len = max(max_len, cur_len);                }                                else if (A[cur_i] != B[j])                {                    match = false;                    cur_i = i;                    cur_len = 0;                }            }        }                return max_len;    }};


0 0
原创粉丝点击