Taylor83
06-03-2010, 17:29
Salve, a tutti sto uscendo pazzo per la risoluzione di un esercizio...ve lo illustro:
Scrivere la funzione: public static boolean checkString(String s).
Istruzioni per lo svolgimento:
• La funzione prende in input una stringa s e restituisce true se e solo se s è ben formata. Una stringa è ben formata se è costituita da sequenze di 0 o più caratteri (diversi dalle parentesi angolari ‘<’ e ‘>’) racchiusi tra coppie di parentesi angolari. Le sequenze possono essere annidate all’interno di altre sequenze e i caratteri di una stessa sequenza devono essere tutti uguali. Ad esempio la stringa “<aaa<bbb>a<ddd> a><ee>” è ben formata in quanto contiene le quattro sequenze <aaaaa>, <bbb>, <ddd>,<ee>. La stringa “<aaa<bbbb>c<dd>a>” non è ben formata perché contiene le sequenze <aaaca>, <bbbb> e <dd>, la prima delle quali non è formata da caratteri identici. Anche la stringa “<aaa>><ff>a<bbb>a>” non è ben formata perché c’è una parentesi angolare ‘>’ a cui non corrisponde alcuna parentesi angolare ‘<’.
• La stringa vuota e la stringa “< >” sono ben formate.
Ho fatto solamente il check per vedere se la stringa è ben parentesizzata, ma il resto non so come farlo.
Di seguito la mia parte di codice:
public static boolean checkString(String s){
DinamicArrayStack <String> stack = new DinamicArrayStack <String>();
for (int i=0; i<s.length(); i++){
String curr = "" + s.charAt(i);
String = o;
if(curr.equals("<"))
stack.push(curr);
if(curr.equals(">")){
try {
o = stack.pop();
}
catch(EmptyStackException e){
return false;
}
}
}
if(stack.isEmpty())
return true;
else
return false;
}
Vi prego aiutatemi:help:...Grazie mille!!!
Scrivere la funzione: public static boolean checkString(String s).
Istruzioni per lo svolgimento:
• La funzione prende in input una stringa s e restituisce true se e solo se s è ben formata. Una stringa è ben formata se è costituita da sequenze di 0 o più caratteri (diversi dalle parentesi angolari ‘<’ e ‘>’) racchiusi tra coppie di parentesi angolari. Le sequenze possono essere annidate all’interno di altre sequenze e i caratteri di una stessa sequenza devono essere tutti uguali. Ad esempio la stringa “<aaa<bbb>a<ddd> a><ee>” è ben formata in quanto contiene le quattro sequenze <aaaaa>, <bbb>, <ddd>,<ee>. La stringa “<aaa<bbbb>c<dd>a>” non è ben formata perché contiene le sequenze <aaaca>, <bbbb> e <dd>, la prima delle quali non è formata da caratteri identici. Anche la stringa “<aaa>><ff>a<bbb>a>” non è ben formata perché c’è una parentesi angolare ‘>’ a cui non corrisponde alcuna parentesi angolare ‘<’.
• La stringa vuota e la stringa “< >” sono ben formate.
Ho fatto solamente il check per vedere se la stringa è ben parentesizzata, ma il resto non so come farlo.
Di seguito la mia parte di codice:
public static boolean checkString(String s){
DinamicArrayStack <String> stack = new DinamicArrayStack <String>();
for (int i=0; i<s.length(); i++){
String curr = "" + s.charAt(i);
String = o;
if(curr.equals("<"))
stack.push(curr);
if(curr.equals(">")){
try {
o = stack.pop();
}
catch(EmptyStackException e){
return false;
}
}
}
if(stack.isEmpty())
return true;
else
return false;
}
Vi prego aiutatemi:help:...Grazie mille!!!