Given a string str and a matrix mat[][] of lowercase English alphabets, the task is to find whether the string str appears in the matrix (either row-wise or column-wise).
Examples:
Input: str = "GFG"
mat[][] = {{'G', 'E', 'E', 'K', 'S'},
{'F', 'O', 'R', 'A', 'N'},
{'G', 'E', 'E', 'K', 'S'}}
Output: Yes
GFG is present in the first column.
Input: str = "SSS"
mat[][] = {{'G', 'E', 'E', 'K', 'S'},
{'F', 'O', 'R', 'A', 'N'},
{'G', 'E', 'E', 'K', 'S'}}
Output: No
Approach:
If the search string is present in any row of the matrix the following results will be produced by the split function:
- If the string occupies the whole row then the split function will return an array of length zero.
- If the string is present in between characters then the array length will be greater than one.
- If the array length is one then three possible cases can be there-
- The string occurs in first half.
- The string occurs in second half.
- The string is not present in that row.
- To search the string column wise transpose the matrix and repeat step one.
- Print Yes if the string is found else print No.
Below is the implementation of the above approach:
Java
// Java program to search a string in // the matrix using split function import java.util.*; public class GFG { // Function to check the occurrence of string in the matrix public static int check(String[] matrix, String string) { // Looping the contents in the matrix for (String input : matrix) { // using split operator String[] value = input.split(string); if (value.length >= 2 || value.length == 0) { return 1; } else if (value.length == 1 && input.length() != value[0].length()) { return 1; } } return 0; } // Function to transpose the given matrix public static String[] vertical(String[] matrix) { String[] vertical_value = new String[(matrix[0].length())]; for (int i = 0; i < matrix[0].length(); i++) { String temp = ""; for (int j = 0; j < matrix.length; j++) temp += matrix[j].charAt(i); vertical_value[i] = temp; } // returning the transposed matrix return vertical_value; } // Driver code public static void main(String[] args) { // Input matrix of characters String[] matrix = { "GEEKS", "FORAN", "GEEKS" }; // element to be searched String search = "GFG"; // Transpose of the matrix String[] verticalMatrix = vertical(matrix); // Searching process int horizontal_search = check(matrix, search); int vertical_search = check(verticalMatrix, search); // If found if (horizontal_search == 1 || vertical_search == 1) System.out.println("Yes"); else System.out.println("No"); } } |
Yes
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] There you can find 46611 more Information on that Topic: geeksforgeeks.org/search-a-string-in-matrix-using-split-function-in-java/ […]