Recentemente, fui instruído a ler um livro inteiro de física até o ano novo (história verdadeira, infelizmente). Preciso da sua ajuda para determinar quais capítulos devo ler todos os dias. É aqui que você entra.
Entrada
- Duas datas, em qualquer formato. A segunda data será sempre posterior à primeira.
- Uma lista de números de capítulo. Essa lista separada por vírgula pode conter capítulos únicos (
12
) ou intervalos inclusivos (1-3
). Ex.1-3,5,6,10-13
. - Uma lista de dias da semana (representada pelas duas primeiras letras do nome
Monday -> Mo
:) a serem excluídas da programação. Ex.Mo,Tu,Fr
.
Resultado
A saída será uma lista separada por nova linha de datas e números de capítulos (veja o formato abaixo). Os capítulos devem ser distribuídos uniformemente por todos os dias no intervalo, excluindo os dias da semana fornecidos. Se os capítulos não distribuírem uniformemente, tenha os dias com quantidades menores de capítulos no final do período. As datas na saída podem estar em um formato diferente da entrada. Dias sem capítulos podem ser omitidos ou simplesmente não têm capítulos.
Exemplo:
Entrada: 9/17/2015 9/27/2015 1-15 Tu
Resultado:
9/17/2015: 1 2
9/18/2015: 3 4
9/19/2015: 5 6
9/20/2015: 7 8
9/21/2015: 9 10
9/23/2015: 11
9/24/2015: 12
9/25/2015: 13
9/26/2015: 14
9/27/2015: 15
Respostas:
PowerShell v4,
367357323313308307305277 bytesEditar - jogou 28 bytes usando formatação explícita de entrada.
Explicado:
Uso
Espera que as datas estejam no
DateTime
formato .NET . Espera que os dias "ignorados" estejam em uma matriz (equivalente ao PowerShell a uma lista).fonte
$
... Na verdade, essa é uma média bastante média para os jogadores do PowerShell, que parece estar entre 10% e 15% (com base nos meus próprios cálculos informais de respostas que eu postei).JavaScript (ES6),
317310291 bytesUso
Explicação
fonte
Python 2 -
338317308304300Aqui vamos fazer a bola rolar ...
Exemplo de entrada:
Saída de exemplo:
fonte