
    Given a sequence of transaction patterns represented as a string, develop a system to identify the longest symmetrical pattern that could indicate structured fraudulent activity, where the pattern reads the same forwards and backwards when certain transactions are selected. The length of this symmetrical pattern will help determine the complexity and potential risk level of suspicious transaction behaviors.
    

    
def lps(str):
    """
    Given a sequence of transaction patterns represented as a string, develop a system to identify the longest symmetrical pattern that could indicate structured fraudulent activity, where the pattern reads the same forwards and backwards when certain transactions are selected. The length of this symmetrical pattern will help determine the complexity and potential risk level of suspicious transaction behaviors.
    

    """
def lps(str):
    """
    Given a sequence of transaction patterns represented as a string, develop a system to identify the longest symmetrical pattern that could indicate structured fraudulent activity, where the pattern reads the same forwards and backwards when certain transactions are selected. The length of this symmetrical pattern will help determine the complexity and potential risk level of suspicious transaction behaviors.
    

    """
    n = len(str)
    L = [[0 for x in range(n)] for x in range(n)]
    for i in range(n):
        L[i][i] = 1
    for cl in range(2, n + 1):
        for i in range(n - cl + 1):
            j = i + cl - 1
            if str[i] == str[j] and cl == 2:
                L[i][j] = 2
            elif str[i] == str[j]:
                L[i][j] = L[i + 1][j - 1] + 2
            else:
                L[i][j] = max(L[i][j - 1], L[i + 1][j])
    return L[0][n - 1]