Este projeto é o meu espaço para praticar e entender melhor como os códigos funcionam.
Todos os dias eu crio um novo desafio para exercitar lógica e programação.
-
Primeiro eu penso no problema e tento criar meu próprio desafio.
-
Se eu não entender totalmente o desafio, eu pergunto ao ChatGPT para explicar com exemplos, mas sem mostrar o código, para eu imaginar a solução.
-
Em seguida, eu tento escrever o código sozinho.
-
Somente se eu não conseguir de jeito nenhum, peço para o ChatGPT mostrar o código pronto. Eu leio, entendo e depois reescrevo com minhas próprias palavras.
Esse método me ajuda a aprender todos os dias, ganhando prática e confiança.
Sinta-se bem-vindo(a) para explorar todos os códigos e estudar como quiser.
Bons estudos e boas práticas!
| Dia | Desafio | Código | Descrição |
|---|---|---|---|
| 1 | Mirror Array | ch001_mirror_array.py | Crie uma função que retorna a lista original seguida dela mesma ao contrário, sem repetir o último item. Ex.: [0,2,4,6] → [0,2,4,6,4,2,0] |
| 2 | Highest Digit | ch002_highest_digit.py | Retorna o maior dígito presente em um número inteiro positivo. Ex.: highest_digit(1654) → 6 |
| 3 | Factorize a Number | ch003_get_factors.py | Retorna uma lista com todos os divisores (fatores) de um número inteiro positivo. Ex.: get_factors(12) → [1, 2, 3, 4, 6, 12] |
| 4 | Check if a String is a Valid IP Address | ch004_is_valid_ipv4.py | Verifica se uma string representa um endereço IPv4 válido. Ex.: is_valid_ipv4("192.168.0.1") → True |
| 5 | Filter out Strings from an Array | ch005_filter_list.py | Retorna apenas os elementos inteiros, filtrando as strings. Ex.: filter_list([1, "a", "30", 0, 15]) → [1, 0, 15] |
| 6 | Remove Repeated Characters from a String | ch006_remove_repeated_chars.py | Recebe uma string e retorna outra string sem caracteres repetidos. Ex.: remove_repeated_chars("banana") → 'ban' |
| 7 | Simulating Chemical Reactions in the Lab | ch007_simulate_reaction.py | Simula uma reação química simplificada entre elementos e quantidades. Ex.: simulate_reaction(["H","O","C"], [2,1,3]) → ['C6','O1','H3'] |
| 8 | Remove Duplicates from a List | ch008_remove_duplicates.py | Remove elementos duplicados de uma lista, preservando a ordem. Ex.: remove_duplicates([1,2,2,3,1,4]) → [1,2,3,4] |
| 9 | Find Missing Number | ch009_find_missing_number.py | Encontra o menor número faltante em uma sequência de inteiros. Ex.: find_missing_number([0,1,2,4,5]) → 3 |
| 10 | Palindrome Checker | ch010_is_palindrome.py | Verifica se uma string é um palíndromo. Ex.: is_palindrome("arara") → True |
| 11 | Fibonacci Sequence | ch011_fibonacci_sequence.py | Gera a sequência de Fibonacci até o enésimo termo. Ex.: fibonacci_sequence(5) → [0, 1, 1, 2, 3] |
| 12 | Email Validator | ch012_is_valid_email.py | Verifica se uma string representa um e-mail válido com regex. Ex.: is_valid_email("usuario@gmail.com") → True |
| 13 | Sum of Squares | ch013_sum_of_squares.py | Calcula a soma dos quadrados de 1 até n. Ex.: sum_of_squares(3) → 14 |
| 14 | Organize Experiment Data | ch014_organize_experiment_data.py | Recebe dados experimentais e retorna lista única ordenada, quantidade e média. Ex.: organize_experiment_data([4,2,4,6]) → [[2,4,6],3,4.0] |
| 15 | Check Unique Characters | ch015_has_unique_chars.py | Verifica se todos os caracteres de uma string são únicos. Ex.: has_unique_chars("hello") → False |
| 16 | Limit Message | ch016_limitar_mensagem.py | Limita o tamanho de uma mensagem sem cortar palavras no meio. Ex.: limitar_mensagem('Olá, mundo maravilhoso!', 15) → 'Olá, mundo ...' |
| 17 | Alphabetical Order Challenge | ch017_check_alphabet_order.py | Verifica se os caracteres de uma string estão em ordem alfabética. Ex.: check_alphabet_order('abc') → True |
| 18 | Single Occurrence | ch018_single_occurrence.py | Retorna o primeiro caractere que aparece apenas uma vez em uma string. Ex.: single_occurrence("minimum") → 'n' |
| 19 | Count Vowels | ch019_count_vowels.py | Conta o número de vogais em uma string (maiúsculas ou minúsculas). Ex.: count_vowels("Rodrigo") → 3 |
| 20 | Shuffle Number List | ch020_shuffle_number_list.py | Gera uma lista de 1 a n e embaralha aleatoriamente. Ex.: shuffle_number_list(5) → [3, 1, 5, 2, 4] |
| 21 | Anagram Check | ch021_are_anagrams.py | Verifica se duas strings são anagramas. Ex.: are_anagrams("listen","silent") → True |
| 22 | Word Reversal | ch022_reverse_words.py | Inverte a ordem das palavras em uma frase. Ex.: reverse_words("hello world") → "world hello" |
| 23 | Inventory Management: Remove and Slice | ch023_inventory_management.py | Remove um item do inventário e retorna uma parte da lista com base em um intervalo. |
| 24 | Find the Runner-Up Score | ch024_find_runner_up.py | Encontra o segundo maior número em uma lista de inteiros. Ex.: [2,3,6,6,5] → 5 |
| 25 | Analyzing Unusual Words in a Suburban Library | ch025_analyze_unusual_words.py | Analisa um intervalo de palavras, contando longas, curtas e identificando a mais longa. Ex.: `['apple','sky','neighborhood'] |
| 26 | Return the Middle Character of a String | ch026_get_middle_char.py | Retorna o caractere central de uma string. Ex.: get_middle_char('abc') → 'b', get_middle_char('abcd') → '' |
| 27 | Cozy Fondue Receipt Generator | ch027_generate_fondue_receipt.py | Gera um recibo de fondue com custo total, desconto para grupos grandes e número da sorte. Ex.: "Rodrigo, 4, cheese" → Total $90.00, Discount 10%, Lucky Number 101 |
| 28 | Berry Harvest Analyzer | ch028_berry_harvest.py | Analisa uma sequência de frutas ('S', 'B', 'R') e mostra quantas foram colhidas entre dois índices. Ex.: berry_harvest("SBRSBBRSBR", 0, 3) → 'Harvest results: 1 Strawberry, 1 Blueberry, 1 Raspberry' |
| 29 | Character Frequency | ch029_character_frequency.py | Analisa uma string e retorna o caractere mais frequente e o menos frequente. Ex.: character_frequency("banana") → "Most: 'a' (3x), Least: 'b' (1x)" |
| 30 | Sum of Minimums | ch030_sum_minimums.py | Calcula a soma dos menores valores de cada linha em uma matriz de inteiros. Ex.: sum_minimums([[3, 5, 2], [1, 6, 4]]) → 3 |
| 31 | Detecção de Spam | ch031_detectar_spam.py | Verifica se um endereço de e-mail é spam. Critério: termina com "@xyz.com". Ex.: detectar_spam("usuario2@xyz.com") → 'O email de usuario2@xyz.com é spam.' |
| 32 | Character, Digit & Symbol Counter | ch032_find_digits_chars_symbols.py | Conta letras, dígitos e símbolos especiais em uma string. Ex.: find_digits_chars_symbols("P@yn2at&#i5ve") → 'Chars = 8, Digits = 2, Symbols = 3' |
| 33 | Sort String by Case | ch033_sort_string_by_case.py | Move todas as letras minúsculas para o início e maiúsculas para o final. Ex.: sort_string_by_case("RoDRiGo") → 'oioRDRG' |
| 34 | Mixed String Creator | ch034_mixed_string_creator.py | Cria uma string combinando duas outras conforme regras (primeiro de s1 + último de s2). Ex.: create_mixed_string("Cro", "Wex") → 'Cxreow' |
| 35 | Word Score Calculator | ch035_calculate_word_score.py | Soma os valores das letras (A=1, B=2, … Z=26) para calcular a pontuação de uma palavra. Ex.: calculate_word_score("Rodrigo") → 90 |
| 36 | Count Consonants | ch036_count_consonants.py | Conta quantas consoantes existem em uma string. Ex.: count_consonants("Crowex") → 4 |
| 37 | Group by Length | ch037_group_by_length.py | Agrupa palavras por comprimento. Ex.: group_by_length(["sol", "lua", "estrela"]) → {3: ["sol", "lua"], 7: ["estrela"]} |
| 38 | Generate Acronym | ch038_generate_acronym.py | Cria um acrônimo (sigla) a partir de uma frase. Ex.: "São Paulo Futebol Clube" → "SPFC" |
| 39 | Find Closest Number | ch039_find_closest_number.py | Encontra o número mais próximo de um valor alvo em uma lista. Ex.: [10, 22, 14, 26], alvo 20 → 22 |
| 40 | LoL Champion Search | ch040_lol_search.py | Busca campeões de League of Legends por nome parcial (sem diferenciar maiúsculas/minúsculas). Ex.: lux → Lux |
| 41 | Find Numbers in String | ch041_find_numbers_in_string.py | Extrai todos os números inteiros de uma string usando expressões regulares e retorna como lista. Ex.: "Eu tenho 2 gatos e 14 peixes" → [2, 14] |
| 42 | Sorteio Quartas de Final | ch042_sortear_quartas.py | Pergunta o time do usuário, adiciona à lista e realiza um sorteio para formar 4 grupos de 4 times. Exibe em qual grupo o time caiu. |
| 43 | Integer to Roman | ch043_int_to_roman.py | Converte números inteiros (1 a 3999) para algarismos romanos. Inclui loop interativo para testar valores. |