Skip to content

Instantly share code, notes, and snippets.

@bernardobrezende
Last active October 12, 2017 18:41
Show Gist options
  • Save bernardobrezende/cfa143cc00011f6cd106943459586106 to your computer and use it in GitHub Desktop.
Save bernardobrezende/cfa143cc00011f6cd106943459586106 to your computer and use it in GitHub Desktop.
Projeto CRESCER - Desafio JS

Projeto CRESCER CWI

image

Índice de exercícios

  1. Tá combinado?
  2. Goku vai às compras
  3. Excel

Importante

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

  • Preste atenção no nome das funções nos exemplos! Não mude.
  • Não utilize bibliotecas que fazem toda lógica. Desta forma o exercício perde o sentido.

#letsCommitate

Exercício 1

Tá combinado?

Dado um objeto no formato de um hash (pares chave/valor, lembram?) que possui letras e quantas vezes elas devem aparecer, escreva uma função que retorne um array ordenado alfabeticamente com todas possibilidades de palavras que podem ser formadas a partir do hash.

Pirou? Respire 3 vezes, ligue a música de foco (playlists no Spotify sugeridas: aqui e aqui), pegue café (sem açúcar) e veja o caso de teste abaixo:

describe('Exemplos ex 1', function() {
  it('quando informa 2a, 1b 1c', function() {
    var esperado = ['aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'baac', 'baca', 'bcaa', 'caab', 'caba', 'cbaa'];
    expect(gerarPalavras({ 2: [ 'a' ], 1: [ 'b', 'c' ] })).toBe(esperado);
  });
});

IMPORTANTE: Preste atenção no formato do objeto passado no exemplo. Não serão aceitos outros tipos de parâmetros (array de strings, etc). Siga exatamente o padrão descrito!
IMPORTANTE: Não se preocupe com números ou caracteres especiais. Espere que a entrada será apenas a-z (minúsculas).

Exercício 2

image

Goku vai às compras!

Cansado de ser um Saiyajin virtuoso, Goku decide largar tudo e fazer compras com Gohan. Mas para isto precisa de um cartão de crédito válido. Ajude Goku e crie uma função que, dado um inteiro de até 16 dígitos, retorne true caso o número seja um cartão de crédito válido e false caso não. Bora pesquisar!

Ex:

describe('Exemplos ex 2', function() {
  it('quando informa 123', function() {
    expect(verificarCC(123)).toBeFalsy();
  });
  it('quando informa 1230', function() {
    expect(verificarCC(1230)).toBeTruthy();
  });
  it('quando informa amex iluminatti', function() {
    expect(verificarCC(349754594167555)).toBeTruthy();
  });
});

Exercício 3

Excel

Escreva uma função que receba uma letra MAIÚSCULA e retorne o número equivalente à coluna no software Excel.

Ex:

describe('Exemplos ex 3', function() {
  it('quando informa referência A', function() {
    expect(excelRef('A')).toBe(1);
  });
  it('quando informa referência AZ', function() {
    expect(excelRef('AZ')).toBe(52);
  });
});

Dica: utilize a função charCodeAt para te ajudar!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment