Un índex d’un text és una llista de totes les paraules que hi apareixen, juntament amb les posicions on es troben. Per exemple, donat el text:
the cat sat on the mat the cat
l’índex seria:
cat: 2 8
mat: 6
on: 4
sat: 3
the: 1 5 7
Fixeu-vos que les paraules de l’índex estan ordenades alfabèticament, i les posicions de cada paraula també estan ordenades.
Feu un programa que llegeixi una seqüència de paraules i en mostri l’índex.
En aquest problema el centre d’interès és l’eficiència. Cal trobar una forma intel·ligent d’emmagatzemar les paraules i les seves posicions per evitar cerques innecessàries.
L’entrada és una seqüència de paraules (en minúscules, sense espais interns), una per línia, acabada per fi d’entrada. La primera paraula té la posició 1.
Per a cada paraula diferent que apareix al text, s’escriu una línia
amb la paraula, seguida de : i un espai, i a continuació
les posicions on apareix, ordenades de menor a major i separades per
espais. Les paraules s’escriuen en ordre alfabètic.
Input
to be or not to be that is the question whether tis nobler in the mind to suffer the slings and arrows of outrageous fortune or to resist
Output
and: 21 arrows: 22 be: 2 6 fortune: 25 in: 14 is: 8 mind: 16 nobler: 13 not: 4 of: 23 or: 3 26 outrageous: 24 question: 10 resist: 28 slings: 20 suffer: 18 that: 7 the: 9 15 19 tis: 12 to: 1 5 17 27 whether: 11
Input
el gat va seure sobre el gat i el gat va saltar
Output
el: 1 6 9 gat: 2 7 10 i: 8 saltar: 12 seure: 4 sobre: 5 va: 3 11