Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercício Resolvido de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash tableQuantidade de visualizações: 2850 vezes |
|
Exercícios Resolvidos de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash table Pergunta/Tarefa: Dadas duas palavras p1 e p2, escreva um código Python que informa se uma palavra é anagrama da outra. Um anagrama é uma espécie de jogo de palavras criado com a reorganização das letras de uma palavra ou expressão para produzir outras palavras ou expressões, utilizando todas as letras originais exatamente uma vez. Para esta solução você deverá, obrigatoriamente, usar um dicionário Python, ou seja, um objeto dict. O objetivo é construir duas tabelas de frequências dos caracteres de cada palavra. Dicionários em Python são similares às tabelas hash (hash tables) em outras linguagens de programação. Seu programa deverá exibir a seguinte saída: ![]() Resposta/Solução: Veja a resolução com código comentado em Python:
# método que recebe duas palavras e retorna
# verdadeiro se uma palavra for anagrama da
# outra
def anagramas(palavra1, palavra2):
# o primeiro passo é verificar se os comprimentos das duas
# palavras são iguais
if(len(palavra1) != len(palavra2)):
return False
# agora criamos dois dictionaries para as frequencias de
# cada uma das palavras
freq_p1 = {}
freq_p2 = {}
# agora registramos as frequências de letras na primeira
# palavra
for letra in palavra1:
# a letra já está no dicionário?
if letra in freq_p1:
freq_p1[letra] += 1 # aumenta a frequêcia desta letra
else:
freq_p1[letra] = 1 # ainda não estava no dicionário
# agora registramos as frequências de letras na segunda
# palavra
for letra in palavra2:
# a letra já está no dicionário?
if letra in freq_p2:
freq_p2[letra] += 1 # aumenta a frequêcia desta letra
else:
freq_p2[letra] = 1 # ainda não estava no dicionário
# registradas as frequências de letras das duas palavras,
# chegou a hora de compararmos os dois dicionários
for chave in freq_p1:
# esta chave não está no segundo dicionário ou
# possui valores diferentes?
if chave not in freq_p2 or freq_p1[chave] != freq_p2[chave]:
return False
# se chegou até aqui então uma palavra é anagrama da outra
return True
def main():
# vamos ler duas palavras e verificar se uma é anagrama da outra
palavra1 = input("Informe a primeira palavra: ")
palavra2 = input("Informe a segunda palavra: ")
# vamos chamar o método que faz a verificação
if(anagramas(palavra1, palavra2)):
print("As duas palavras são anagramas")
else:
print("As duas palavras não são anagramas")
if __name__== "__main__":
main()
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercícios Resolvidos de Java - Como escrever uma função Java que recebe dois números inteiros e retorna a soma desses dois valores como um inteiroQuantidade de visualizações: 10219 vezes |
|
Pergunta/Tarefa: Escreva um método estático em Java chamado somar() que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro. Este método deverá ter a seguinte assinatura:
public static int somar(int a, int b){
// sua implementação aqui
}
Sua saída deverá ser parecida com: Informe o primeiro número: 4 Informe o segundo número: 3 A soma dos dois números é: 7 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos pedir ao usuário que informe dois valores inteiros
System.out.print("Informe o primeiro número: ");
int n1 = Integer.parseInt(entrada.nextLine());
System.out.print("Informe o segundo número: ");
int n2 = Integer.parseInt(entrada.nextLine());
// vamos efetuar uma chamada ao método somar() e obter seu retorno
int resultado = somar(n1, n2);
// finalmente mostramos o resultado
System.out.println("A soma dos dois números é: " + resultado);
}
// método estático que recebe dois inteiros e retorna a soma como um número inteiro
public static int somar(int a, int b){
int soma = a + b; // soma os dois números
return soma; // retorna a soma para o método chamado
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercícios Resolvidos de Java - Como converter de decimal para números romanos em JavaQuantidade de visualizações: 887 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro decimal e converta-o para o número romano correspondente. Sua saída deverá ser parecida com: Informe um número decimal: 2023 O número romano correspondente é: MMXXIII Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos criar um array com os valores decimais possíveis de
// cada número romano
int valoresNumerosRomanos[] = new int[]{1000, 900, 500, 400,
100, 90, 50, 40, 10, 9, 5, 4, 1};
// representação dos números romanos
String numerosRomanos[] = new String[]{"M", "CM", "D", "CD",
"C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
// vamos pedir para o usuário informar um número decimal
System.out.print("Informe um número decimal: ");
int numero = Integer.parseInt(entrada.nextLine());
// para guardar o resultado
String resultado = "";
// o número é maior que zero?
if (numero > 0) {
// percorremos o array de valores decimais dos números romanos
for(int i = 0;i < valoresNumerosRomanos.length; i++){
// enquanto o número informado for maior que o valor do
// do número romano atual
while(numero >= valoresNumerosRomanos[i]){
// reduz o número informado
numero = numero - valoresNumerosRomanos[i];
// concatena o número romano e continua o cálculo
resultado = resultado + numerosRomanos[i];
}
}
}
// mostramos o resultado
if(resultado.isEmpty()){
System.out.println("O número informado não possui número romano");
}
else{
System.out.println("O número romano correspondente é: " + resultado);
}
}
}
|
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Engenharia Civil - Cálculo Estrutural |
Exercícios Resolvidos de Python - Como calcular as reações de apoio, momento de flexão máxima e forças cortantes em uma viga bi-apoiada com carga distribuída retangular usando PythonQuantidade de visualizações: 2112 vezes |
|
Pergunta/Tarefa: Veja a seguinte figura: ![]() Nesta imagem temos uma viga bi apoiada com uma carga q distribuída de forma retangular a uma distância l. Para fins didáticos, vamos considerar que a carga q será em kN/m e a distância l será em metros. O apoio A é de segundo gênero e o apoio B é de primeiro gênero. Escreva um programa Python que solicita ao usuário que informe o valor da carga q e a distância l entre os apoios A e B. Em seguida mostre os valores das reações nos apoios A e B, o momento de flexão máxima da viga e o momento de flexão para uma determinada distância (que o usuário informará) a partir do apoio A. Mostre também as forças cortantes nos apoios A e B. Lembre-se de que, para uma carga distribuída de forma retangular, o diagrama de momento fletor é uma parábola, enquanto o diagrama de cortante é uma reta (com o valor zero para a força cortante no meio da viga). Sua saída deve ser parecida com: Valor da carga em kN/m: 10 Distância em metros: 13 A reação no apoio A é: 65.000000 kN A reação no apoio B é: 65.000000 kN O momento fletor máximo é: 211.250000 kN.m Informe uma distância a partir do apoio A: 4 O momento fletor na distância informada é: 180.000000 kN.m A força cortante no apoio A é: 65.000000 kN A força cortante no apoio B é: -65.000000 kN Veja a resolução comentada deste exercício usando Python:
# Algoritmo que calcula reação de apoio, momento fletor
# e força cortante em uma viga bi-apoiada em Python
# vamos importar o módulo Math
import math
# função principal do programa
def main():
# vamos pedir para o usuário informar o valor da carga
carga = float(input("Valor da carga em kN/m: "))
# vamos pedir para o usuário informar a distância entre os apoios
distancia = float(input("Distancia em metros: "))
# vamos calcular a reação no apoio A
reacao_a = (1.0 / 2.0) * carga * distancia
# vamos calcular a reação no apoio B
reacao_b = reacao_a
# vamos calcular o momento fletor máximo
flexao_maxima = (1.0 / 8.0) * carga * math.pow(distancia, 2.0)
# e mostramos o resultado
print("\nA reação no apoio A é: {0} kN".format(reacao_a))
print("A reação no apoio B é: {0} kN".format(reacao_b))
print("O momento fletor máximo é: {0} kN.m".format(flexao_maxima))
# vamos pedir para o usuário informar uma distância a
# partir do apoio A
distancia_temp = float(input("\nInforme uma distância a partir do apoio A: "))
# vamos mostrar o momento fletor na distância informada
if distancia_temp > distancia:
print("\nDistância inválida.")
else:
flexao_distancia = (1.0 / 2.0) * carga * distancia_temp * \
(distancia - distancia_temp)
print("O momento fletor na distância informada é: {0} kN.m".format(
flexao_distancia))
# vamos mostrar a força cortante no apoio A
cortante_a = (1.0 / 2.0) * carga * distancia
print("\nA força cortante no apoio A é: {0} kN".format(cortante_a))
# vamos mostrar a força cortante no apoio B
cortante_b = cortante_a * -1
print("A força cortante no apoio B é: {0} kN".format(cortante_b))
if __name__== "__main__":
main()
|
Nossas 20 dicas & truques de programação mais populares |
|
Java - Como calcular a transposta de uma matriz em Java - Java para Geometria Analítica e Álgebra Linear Java - Java Swing Avançado - Como exibir imagens nas células de uma JTable em suas aplicações Java Swing |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como acessar as mídias do usuário em JavaScript usando a função getUserMedia() da interface MediaDevices jQuery - jQuery para iniciantes - Como obter o conteúdo de um elemento HTML usando a função html() do jQuery |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






