Ejercicio java: Collar con cuentas de colores
Ejercicio tomado de: Primer Concurso Local de Programación ACM ICPC - Universidad Autónoma Metropolitana Unidad Azcapotzalco.
Este es un ejemplo en el cual podemos hacer uso de vectores.
package ejeCollar;
import java.util.Scanner;
public class aplic {
public static void main(String[] args) {
Scanner leer=new Scanner(System.in);
String collar=leer.nextLine();
char [] lista=collar.toCharArray();
int c=0,m=1,may=1;
for (int i = 0; i < lista.length-1; i++) {
if (lista[i]==lista[i+1]) {
may++;
if (m<may) {
m=may;
}
}
else{
may=1;
}
}
for (int i = 0; i < lista.length; i++) {
may=1;
for (int j = i+1; j <= lista.length-1; j++) {
if (lista[i]==lista[j]) {
lista[j]='.';
}
}
}
for (int i = 0; i < lista.length; i++) {
if (lista[i]!='.') {
c++;
}
}
System.out.println(c+"\t"+m);
}
}
Este es un ejemplo en el cual podemos hacer uso de vectores.
Collar con cuentas de colores
Cierta persona tiene un collar circular con cuentas de colores: hay cuentas amarillas, blancas, cafés, etc., de modo que podemos describir el collar comenzando en cualquier lugar del mismo, avanzando siempre en la misma dirección e indicando la inicial del color correspondiente (una letra minúscula de la a a la z) hasta llegar a la última cuenta. Esta persona quiere responder dos preguntas que le hicieron acerca de su collar. La primera pregunta es ¿cuántos colores distintos hay en su collar? (llamemos c a esta cantidad). La segunda pregunta es ¿cuál es la longitud del segmento más largo de su collar tal que todas las cuentas son del mismo color? (llamemos m a esta cantidad). Escriba un programa que ayude al dueño del collar a calcular las doss cantidades c y m. En el collar descrito en el ejemplo de abajo hay 3 colores distintos, hay un segmento de 4 cuentas del mismo color.
Ejemplo de entrada: uamaaauumaummuauamumummmmua
Ejemplo de salida: 3 4 ( donde 3 es la cantidad de colores y 4 el segmento mas largo).
Solución.
import java.util.Scanner;
public class aplic {
public static void main(String[] args) {
Scanner leer=new Scanner(System.in);
String collar=leer.nextLine();
char [] lista=collar.toCharArray();
int c=0,m=1,may=1;
for (int i = 0; i < lista.length-1; i++) {
if (lista[i]==lista[i+1]) {
may++;
if (m<may) {
m=may;
}
}
else{
may=1;
}
}
for (int i = 0; i < lista.length; i++) {
may=1;
for (int j = i+1; j <= lista.length-1; j++) {
if (lista[i]==lista[j]) {
lista[j]='.';
}
}
}
for (int i = 0; i < lista.length; i++) {
if (lista[i]!='.') {
c++;
}
}
System.out.println(c+"\t"+m);
}
}
hola disculpa no tienes los demás programas ?
ResponderEliminar