Guide for Nou Barris, o en son 13?
Com abordar aquest problema
Se't donen noms de barris de Barcelona, un per línia, i has de dir si cadascun formava part del districte de Nou Barris quan es va crear l'any 1984 (SI) o no (NO).
Idea general:
- Llegeix bé l'enunciat i identifica quins són els barris que hi havia el 1984 (compte, l'enunciat mateix t'explica quins barris es van afegir més tard, el 2006, i quins es van dividir).
- Guarda aquests noms en una estructura de dades on sigui ràpid comprovar si un valor hi és (una llista, un conjunt...).
- No saps per endavant quants casos et donaran: llegeix línies fins que s'acabi l'entrada.
- Per cada línia, mira si el nom hi és a la teva estructura i escriu
SIoNO.
Paranys habituals:
- Els noms han de coincidir exactament amb els de l'enunciat (majúscules, accents...). Vigila si llegeixes la línia amb espais o salts de línia de més — normalment cal netejar-la abans de comparar.
- No et refiïs de memòria dels barris: torna a llegir l'enunciat amb calma, hi ha la informació que et cal.
Pista per a Java
En Java pots fer servir un Scanner per llegir línia a línia fins que no n'hi hagi més (hasNextLine()), i un HashSet<String> per consultar els noms ràpidament:
import java.util.*;
public class Main {
public static void main(String[] args) {
Set<String> barris1984 = new HashSet<>(Arrays.asList(
// ompliu aquí els noms dels barris, tal com apareixen a l'enunciat
));
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String barri = sc.nextLine().trim();
System.out.println(barris1984.contains(barri) ? "SI" : "NO");
}
}
}
El .trim() treu espais de sobra al principi i al final de la línia abans de comparar-la.