Algorithm

Longest Common Substring

ppwag 2021. 3. 27. 00:36

최장 부분 공통 문자열

두 문자속에 공통으로 포함되어있는 연속적인 문자열의 최대 길이를 찾는 알고리즘이다.

C++

int LCSubstring(string a, string b){
    int n = a.size();
    int m = b.size();
    a = ' ' + a;
    b = ' ' + b;
    vector<vector<int>> dp(n+1, vector<int>(m+1, 0));
    int ans = 0;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            if(a[i] == b[j]){
                dp[i][j] = dp[i-1][j-1] + 1;
                ans = max(ans, dp[i][j]);
            }
        }
    }
    return ans;
}

'Algorithm' 카테고리의 다른 글

이진 탐색  (0) 2021.09.18
정렬  (0) 2021.04.20
약수 찾기  (0) 2021.03.20
Prefix Sum  (0) 2021.03.01
유클리드 호제법  (0) 2020.11.23

댓글