Dada una string str y una array mat[][] de alfabetos ingleses en minúsculas, la tarea es encontrar si la string str aparece en la array (ya sea por filas o por columnas).
Ejemplos:
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
Enfoque:
si la string de búsqueda está presente en cualquier fila de la array, la función de división producirá los siguientes resultados:
- Si la string ocupa toda la fila, la función de división devolverá una array de longitud cero.
- Si la string está presente entre caracteres, la longitud de la array será mayor que uno.
- Si la longitud de la array es uno, entonces se pueden dar tres casos posibles:
- La string se produce en la primera mitad.
- La string se produce en la segunda mitad.
- La string no está presente en esa fila.
- Para buscar la columna de strings, transponga la array y repita el paso uno.
- Imprima Sí si se encuentra la string ; de lo contrario, imprima No.
A continuación se muestra la implementación del enfoque anterior:
// 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"); } }
Producción:
Yes
Publicación traducida automáticamente
Artículo escrito por VISHAL_PERIYASAMY_R y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA