Artigo Girando com Spintax
A rotação de artigos é uma técnica de otimização de mecanismo de pesquisa pela qual os otimizadores de mecanismo de postagem publicam uma versão exclusiva de conteúdo relevante nos diretórios do artigo, sites da Web 2.0 ou outras fontes de backlinks.
Ocasionalmente, é usado pelos autores do site em seus próprios sites, mas geralmente é evitado porque a qualidade do conteúdo gerado será menor do que o conteúdo escrito à mão. A rotação funciona reescrevendo artigos existentes, ou partes de artigos, e substituindo palavras, frases, sentenças ou até parágrafos inteiros por qualquer número de versões alternativas para fornecer uma variação ligeiramente diferente a cada rotação.
Esse processo pode ser completamente automatizado ou reescrito manualmente. Seu trabalho hoje será criar um programa ou função que interprete uma string contendo Spintax , a sintaxe pela qual um programa leria as diferentes opções disponíveis. Abaixo está um exemplo de string que usa Spintax:
{Hello|Hi there|Bonjour}, user! {What's up?|How are you?|Feeling alright?|I caught a fish!}
Como você pode ver, as seções da string que devem ser 'giradas' são colocadas entre chaves, onde as opções individuais são divididas pelo |
caractere. Aqui estão alguns exemplos de frases que isso poderia produzir.
Hi there, user! What's up?
Hello, user! How are you?
Bonjour, user! Feeling alright?
Hello, user! What's up?
Hi there, user! I caught a fish!
Seu emprego
Sua missão, se você optar por aceitá-la, é criar um programa ou função que utilize uma string de entrada que possa ou não conter Spintax e imprima 5 versões da string, selecionando aleatoriamente uma das opções de cada bloco de opções. Você pode fazer algumas suposições:
- Você não precisará lidar com Spintax (
{This|is {an|one}|example}
) aninhado . - Os caracteres
|
,{
e}
não ocorrerão em nenhum outro lugar que não seja dentro de um bloco Spintax. - Você não precisa verificar se as 5 frases de saída são distintas, desde que o código selecione opções usando a função de número aleatório do seu idioma.
- Você pode assumir que a entrada termina com uma nova linha.
Regras
Testes
1. {A|The|One} {quick|magnificent|charming|lucky|fast|super|cool} {gold|tan|yellow|white|brown|silver} {beaver|packrat|cat|lion|tiger|fox|dog|wolf} {consumed|ate|pilfered} my {pastry|strudel|cake}.
-------------------------------------------
One cool brown wolf consumed my pastry.
...(3 more here)...
The charming yellow beaver ate my cake.
-------------------------------------------
2. This sentence is valid, and happens to have no Spintax!
-------------------------------------------
This sentence is valid, and happens to have no Spintax!
...(3 more here)...
This sentence is valid, and happens to have no Spintax!
-------------------------------------------
3. {beg|get|ton|sun|bun|can|top|big}{2|3|4|5}{A|B|C|D|E|F|G}{2|3|4|5|6|7}{at|as|be|ex|hi|}{!|#|%}
-------------------------------------------
top2F2hi%
...(3 more here)...
big3E4ex#
Um quarto teste pode ser encontrado aqui.
Isso é código-golfe , e o menor número de bytes vence.
{
, |
, }
vai ser encontrado na seqüência de entrada é onde há Spintax.