JuanMtz

P10_buscarSecuencia.java

Nov 29th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.73 KB | None | 0 0
  1. /**
  2.  * P10_buscarSecuencia.java
  3.  * Escribe un método que se llame buscarSecuenciaInt() que recibe dos vectores de enteros,
  4.  * el segundo es una secuencia de valores a buscar en el primer vector.
  5.  * Devuelve el índice donde empieza la primera ocurrencia de la secuencia buscada.
  6.  * Copiado de Antonio Cantos por Juan José Martínez Solano        29/11/2019
  7.  */
  8.  
  9. import java.util.Scanner;
  10.  
  11. public class P10_buscarSecuencia {
  12.     public static void main(String[] args) {
  13.  
  14.         int vector1[], vector2[];
  15.  
  16.         Scanner teclado = new Scanner(System.in);
  17.  
  18.         System.out.println("Introduce la dimensión del primer vector:");
  19.         vector1 = new int[teclado.nextInt()];
  20.  
  21.         System.out.println("Introduce los valores del primer vector:");
  22.         for (int i = 0; i < vector1.length; i++) {
  23.             vector1[i] = teclado.nextInt();
  24.         }
  25.  
  26.         System.out.println("Introduce la dimensión del segundo vector:");
  27.         vector2 = new int[teclado.nextInt()];
  28.  
  29.         System.out.println("Introduce los valores del segundo vector:");
  30.         for (int j = 0; j < vector2.length; j++) {
  31.             vector2[j] = teclado.nextInt();
  32.         }
  33.  
  34.         teclado.close();
  35.  
  36.         System.out.println(buscarSecuenciaInt(vector1, vector2));
  37.     }
  38.  
  39.     public static int buscarSecuenciaInt(int vector1[], int vector2[]) {
  40.  
  41.         int a = 0, b = (int)vector2[0], i, sol = 0, sol2 = -1;
  42.         //NO ENTIENDO UNA PUTA MIERDA
  43.         for (i = 0; i < vector1.length; i++) {
  44.             if (vector2.length > vector1.length - i) {
  45.                 break;
  46.             }
  47.             a = (int)vector1[i];
  48.  
  49.             if (a == b) {
  50.                 sol = 0;
  51.  
  52.                 for (int j = 1; j < vector2.length; j++) {
  53.                     a = (int)vector1[i+j];
  54.                     b = (int)vector2[j];
  55.                     if(a != b)
  56.                         sol = 1;
  57.                 }
  58.  
  59.                 if (sol == 0) {
  60.                     sol2 = i;
  61.                     break;
  62.                 }
  63.  
  64.                 b = (int)vector2[0];
  65.             }
  66.         }
  67.         return sol2;
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment