Índex de paraules X24468


Statement
 

pdf   zip

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.

Observació

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.

Entrada

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.

Sortida

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.

Public test cases
  • 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
    
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++