Git Product home page Git Product logo

capgemini_challenge's Introduction

BEM VINDO AO MEU REPOSITÓRIO DO DESAFIO DE PROGRAMAÇÃO - ACADEMIA CAPGEMINI

Estou participando da terceira etapa do processo de seleção para a Academia Capgemini 2022. Nesta etapa, foram formulados os seguintes desafios:

Questão 01

Escreva um algoritmo que mostre na tela uma escada de tamanho n utilizando o caractere * e espaços. A base e altura da escada devem ser iguais ao valor de n. A última linha não deve conter nenhum espaço.

Exemplo:

Entrada:

n = 6

Saída:

     *
    **
   ***
  ****
 *****
******

Questão 02

Débora se inscreveu em uma rede social para se manter em contato com seus amigos. A página de cadastro exigia o preenchimento dos campos de nome e senha, porém a senha precisa ser forte. O site considera uma senha forte quando ela satisfaz os seguintes critérios: Possui no mínimo 6 caracteres. Contém no mínimo 1 digito. Contém no mínimo 1 letra em minúsculo. Contém no mínimo 1 letra em maiúsculo. Contém no mínimo 1 caractere especial. Os caracteres especiais são: !@#$%^&*()-+ Débora digitou uma string aleatória no campo de senha, porém ela não tem certeza se é uma senha forte. Para ajudar Débora, construa um algoritmo que informe qual é o número mínimo de caracteres que devem ser adicionados para uma string qualquer ser considerada segura.

Exemplo:

Entrada:

Ya3

Saída:

3

Explicação: Ela pode tornar a senha segura adicionando 3 caracteres, por exemplo, &ab, transformando a senha em Ya3&ab. 2 caracteres não são suficientes visto que a senha precisa ter um tamanho mínimo de 6 caracteres.


Questão 03

Duas palavras podem ser consideradas anagramas de si mesmas se as letras de uma palavra podem ser realocadas para formar a outra palavra. Dada uma string qualquer, desenvolva um algoritmo que encontre o número de pares de substrings que são anagramas.

Exemplo:

  1. Exemplo

Entrada:

ovo

Saída:

2

Explicação:

A lista de todos os anagramas pares são: [o, o], [ov, vo] que estão nas posições [[0], [2]], [[0, 1], [1, 2]] respectivamente.

  1. Exemplo

Entrada:

ifailuhkqq

Saída:

3

Explicação:

A lista de todos os anagramas pares são: [i, i], [q, q] e [ifa, fai] que estão nas posições [[0], [3]], [[8], [9]] e [[0, 1, 2], [1, 2, 3]].


Os algoritmos foram implementados dentro da pasta br.com/src/main.

Os seus respectivos testes estão na pasta br.com/src/test.

Desafio 1

O algoritmo está no arquivo LadderGenerate.java.

O respectivo teste está no arquivo LadderGenerateTest.java.


Desafio 2

O algoritmo está no arquivo CheckStrongPassword.java.

O respectivo teste está no arquivo CheckStrongPasswordTest.java.


Desafio 3

O algoritmo está no arquivo AnagramCount.java.

O respectivo teste está no arquivo AnagramPairCountTest.java.


Projeto realizado utilizando a IDE IntelliJ.

  • IntelliJ IDEA 2021.3.2 (Community Edition)

  • Build #IC-213.6777.52, built on January 28, 2022

  • Runtime version: 11.0.13+7-b1751.25 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

  • Java versão 1.8.0

  • Junit 5.8.1

Recomenda-se utilizar a IDE IntelliJ para executar os arquivos.

capgemini_challenge's People

Contributors

brunoarduarte avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.