'Is there a recursion that checks whether the matrix diagonally has a sequence of alphabetic letters

I got a homework assignment, I have to find a recursive function that gets a 2D matrix and the number of rows in a matrix and returns true / false If the diagonal of the matrix has a sequence of letters a b c,

Can not think of a solution

public static void main(String[] args) {
    char[][] mat = new char[5][5];

    for (int i = 0; i < mat.length; i++) {
        for (int j = 0; j < mat[i].length; j++)
            mat[i][j] = (char) (int) ((Math.random() * 26) + 'a');
    }

    for (int i=0 ; i <mat.length ; i++)
        mat[i][i] = (char)('a' + i);
    //mat[2][2] = 'b';

    for (int i = 0; i < mat.length; i++) {
        for (int j = 0; j < mat[i].length; j++)
            System.out.print(mat[i][j] + " ");
        System.out.println();
    }

    System.out.println(isDiagonalLettersSequence(mat, mat.length));

}[Here are two examples that I hope will help me explain myself][1]

https://i.stack.imgur.com/Z6qmn.png



Solution 1:[1]

This is pretty simple. Just check on each iteration if the current value is equals to previous +1:

public static boolean isDiagonalHasSequence(char[][] matrix) {
    return isDiagonalHasSequence(matrix, 0);
}

private static boolean isDiagonalHasSequence(char[][] matrix, int row) {
    if (row > 0 && row < matrix.length) {
        // check diagonal \
        if (matrix[row][row] != matrix[row - 1][row - 1] + 1)
            return false;
        // check diagonal /
        if (matrix[row][matrix.length - row - 1] != matrix[row - 1][matrix.length - row - 2] + 1)
            return false;
    }

    return row == matrix.length || isDiagonalHasSequence(matrix, row + 1);
}

Solution 2:[2]

In the main function:

String[][] arr =  {     {"a","e","d"},
                        {"h","b","c"},
                        {"f","f","c"}};

    if(diagonal(arr, 0).equals("abc"))
        System.out.print("true");

And the global recursive function should be:

public static String diagonal(String[][] arr, int i) {
    if(i == arr.length - 1)
        return arr[i][i];
    return arr[i][i] + diagonal(arr, i + 1);
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 oleg.cherednik
Solution 2 Mabadai