Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/06/2014, 22:28
javidotnet
 
Fecha de Ingreso: mayo-2013
Ubicación: Chaco, Argentina
Mensajes: 45
Antigüedad: 10 años, 11 meses
Puntos: 3
De acuerdo Respuesta: Contar combinaciones de letras en un string c#

Cita:
Iniciado por alpranzetti Ver Mensaje
Muchisimas gracias!!! La verdad tu explicacion fue inmejorable y me funcionó todo perfecto. Te nolesto con otra cosita?por ahi es Una bobada lo que te voy a consultar pero hace muy poco que programo y no estoy nada canchera en el tema de matricez y arrays.
Como harias para sumar las ocurrencias de las combinaciones que empiezan con una determinada letra y meterlas en un vector para su posterior uso.es decir: vector sumas = primer elemento: 3 [ab=1+ac=2]
Segundo elemento: 1 [ba=1]
Y asi con cada letra q aparezca primero en la combinacion.

Mil gracias de nuevo,disculpa la molestia y saludos yo tambien soy de argentina,de rosario!!
Hola alpranzetti, cuanto me alegra que te haya funcionado!!! Te aclaro que no es ninguna molestia sino todo lo contrario, es un placer poder ayudar siempre y cuando esté dentro de nuestras posibilidades.
Con respecto a la suma que mencionás usando un vector , podemos usar el mismo código anterior, agregándoles las líneas para la funcionalidad de dicho vector:
Código C#:
Ver original
  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             string s = "hola lola";
  4.  
  5.             // Declaramos la lista de caracteres
  6.             List<char> Lista = new List<char>();
  7.  
  8.             /* Recorremos la cadena en busca de todos los caracteres distintos
  9.                y los agregamos a la lista, a medida que los vayamos encontrando */
  10.             foreach (char ch in s)
  11.             {
  12.                 if (Lista.Contains(ch)) continue;
  13.                 Lista.Add(ch);
  14.             }
  15.  
  16.             /* Ahora ya sabemos cuáles deben ser los límites de la matriz,
  17.                por lo tanto procedemos a declararla */
  18.             int d = Lista.Count;
  19.             int[,] matriz = new int[d, d];
  20.  
  21.             // Hacemos lo mismo para el vector
  22.             int[] vector = new int[d];
  23.  
  24.             // Ahora que ya tenemos la matriz, podemos buscar los pares de letras
  25.             for (int i = 0; i < (s.Length - 1); i++)
  26.             {
  27.                 /* Buscamos en la Lista cada carecter del par de caracteres;
  28.                    la posición dentro de la Lista corresponde tanto a la fila como a la columna */
  29.                 int p1 = Lista.IndexOf(s[i]);
  30.                 int p2 = Lista.IndexOf(s[i + 1]);
  31.                 matriz[p1, p2]++;
  32.  
  33.                 // Hacemos lo mismo con el vector
  34.                 vector[p1]++;
  35.             }
  36.  
  37.             // Mostramos el resultado
  38.             this.textBox1.Text = s + "\r\n";
  39.             for (int fila = 0; fila < d; fila++)
  40.             {
  41.                 // Mostramos el resultado del vector
  42.                 this.textBox2.Text += string.Concat(Lista[fila], "\t = ", vector[fila].ToString(), "\r\n");
  43.  
  44.                 // Mostramos el resultado de la matriz
  45.                 for (int columna = 0; columna < d; columna++)
  46.                 {
  47.                     int m = matriz[fila, columna];
  48.                     if (m != 0)
  49.                         this.textBox1.Text += string.Concat(Lista[fila], Lista[columna], "\t = ", m.ToString(), "\r\n");
  50.                 }
  51.             }
  52.         }
Como podés ver, las líneas que agregué son la 22, la 34 y la 42. Ten en cuenta que también tuve que agregar un nuevo TextBox, en este caso llamado TextBox2, para mostrar el resultado del vector.

Aprovecho este mensaje también para agradecerle a Malenko, muchas gracias! por la info aportada, en breve estaremos estudiando esta Clase de .Net llamada Dictionary, para ver cómo implementarla en esta solución.

Bueno alpranzetti, espero haberte ayudado , y cualquier duda que tengas, preguntá....

ahh qué linda ciudad Rosario! allí está el Monumento a Nuestra Amada, Bellísima y Honorable Bandera!,
la más linda del Mundo!...
¡Saludos desde Resistencia! ¡La Ciudad de las Esculturas!