def longest_common_substring()

in tensorrtllm/run_eval.py [0:0]


def longest_common_substring(s1, s2):
    len1, len2 = len(s1), len(s2)
    dp = [[0] * (len2 + 1) for _ in range(len1 + 1)]
    
    longest_length = 0  
    end_index_s1 = 0 

    for i in range(1, len1 + 1):
        for j in range(1, len2 + 1):
            if s1[i - 1] == s2[j - 1]: 
                dp[i][j] = dp[i - 1][j - 1] + 1
                if dp[i][j] > longest_length:
                    longest_length = dp[i][j]
                    end_index_s1 = i  
            else:
                dp[i][j] = 0 

    return s1[end_index_s1 - longest_length:end_index_s1]