Ajuda em Compactação de Dados usando Dicionario

Pessoal,

Sou novo aqui e não sei se estou postando na área certa, dei uma pesquisada no forum e não achei sobre o assunto.

Meu professor pediu para agente fazer um algoritmo que possibilite compactar uma string usando dicionario de dados,

tipo assim

“O Brasil brasileiro e brasileira” ficaria compactado “O #1 #1eiro e #1eira”, sendo #1 o codigo de abreviaçao para brasil.

O algoritmo teria que varrer toda string, e verificar as palavras repetidas.

Alguem poderia me ajudar ?

Obrigado

O dicionário está pronto, ou você precisa montar o dicionário à medida que lê a string?

Preciso montar o dicionário conforme leio a string.

Alguem poderia dar uma força ?