Find length of the longest consecutive path from a given starting character in Python
We are going to Find the length of the longest consecutive path from a given starting character using Python.Let me first explain to you the problem and then the solution.
Here we will be given a matrix of alphabets and we have to find the longest consecutive path from a given character, where the path is in alphabetical order. Now let’s discuss the solution.
We can find a solution using various functions. Below are the code and its output.
Length of the longest consecutive path:
n = [[0 for i in range(c)] for i in range(r)] def adjacent_check(prev, curr): if (ord(curr) - ord(prev)) == 1: return True return False r = 3 c = 3 def valid_check(i, j): if (i < 0 or j < 0 or i >= r or j >= c): return False return True x = [0, 1, 1, -1, 1, 0, -1, -1] y = [1, 0, 1, 1, -1, -1, 0, -1] def getLenUtility(m, i, j, prev): if (valid_check(i, j) == False or adjacent_check(prev, m[i][j]) == False): return 0 if (n[i][j] != -1): return dp[i][j] ans = 0 for k in range(8): ans = max(ans, 1 + getLenUtility(m, i + x[k], j + y[k], m[i][j])) n[i][j] = ans return n[i][j] def getLength(m, s): for i in range(r): for j in range(c): n[i][j] = -1 ans = 0 for i in range(r): for j in range(c): if (m[i][j] == s): for k in range(8): ans = max(ans, 1 + getLenUtility(m, i + x[k], j + y[k], s)); return ans m = [['a', 'b', 'c'], ['d', 'f', 'f'], ['g', 'h', 'i']] print(getLength(m, 'g')) print(getLength(m, 'c')) print(getLength(m,'e'))
Output:
3 1 0
CODE EXPLAINATION:
In the above code, we have used two functions namely adjacent_check and valid_check to check the range of index and the consecutive path. For ‘g’, the length of the longest consecutive path is 3 because ‘g’ follows ‘h’ and in turn, ‘h’ follows ‘i’. I hope you enjoyed it. THANKYOU.
Leave a Reply