Vous êtes sur la page 1sur 2

CC1001: Computacin I Profesor: Juan Alvarez

Soluciones Auxiliar Strings


Problema N1.
static public boolean capicua(String x){
int n=x.length();
if(n==0) return true;
return x.charAt(0)==x.charAt(n-1)
&& capicua(x.substring(1,n-1)) ;//recursiva
}
static public boolean capicua(String x){
int n=x.length();
for(int i=0; i<n/2; ++i)
if(x.charAt(i)!=x.charAt(n-1-i)) return false;
return true;
}
static public String borrar(char x,String y){
String s=;
for(int i=0; i<y.length(); ++i){
char c=y.charAt(i);
if(c!=x) s+=c;
}
return s;
}
static public String borrar(char x,String y){
int i=y.indexOf(+x);
if(i<0) return y;
return y.substring(0,i)+borrar(y.substring(i+1));
}
static public void main(String[]args)throws IOException{
//leer y reemplazar maysculas por minsculas
String frase=U.readLine(frase?);
frase=frase.toLowerCase();
//eliminar espacios de frase
frase=borrar( ,frase);
//escribir si es o no capicua
U.println( (capicua(frase) ? si + no) + es capicua);
}
Problema N2.
static public boolean ok(String x,String y){
for(int i=0; i<x.length(); ++i)
if( y.indexOf(+x.charAt(i)) < 0 ) return false
return true;
}
static public boolean ok(String x,String y){//recursivo
if(x.length()==0) return true;
if( y.indexOf(+x.charAt(0)) < 0 ) return false
return ok(x.substring(1),y);
}

static public void main(String[]args)throws IOException{


//inicializacion de variables globales
int suma=0, n=0, na=0, mayor=0;
String nombres=;
//repetir hasta fin de nombres
while(true){
String nombre=U.readLine(nombre?).toLowerCase();
if(nombre.equals(fin)) break;
//verificar nombre
if(!ok(nombre,abcdefghijklmnopqrstuvwxyz) )
U.println(nombre incorrecto);
else{
//verificar nota
String s=U.readLine(nota?);
if(!ok(s,0123456789)
|| s.compareTo(10)<0 || s.compareTo(70)>0))
U.println(nota incorrecta);
else{
//procesar datos de alumno
int nota=Integer.parseInt(s);
suma += nota; ++n;
if(nota>=40) ++na;
if(nota>mayor){mayor=nota; nombres=;}
if(nota=mayor) nombres+=nombre+\n;
}
}
}
//escribir resultados finales
U.println(promedio=+suma/n+ aprobados=+100.0*na/n+%);
U.println(mejores alumnos:\n+nombres);