El problema
Dado el siguiente String:
uhERnSOTIiZJTMxuvVLATRfboavhtRwlyUKacuYlOopNWnoMWrUHCEtpcwzEYTWVptoxOlyHEeUMeMcbfEyjAVylxRpxVCRUCXAJFjUGSEUgQxJwrgGEPvIXInuFOAkcXjLdmPmiIzNWUXhYePvckLQotpAUTosytjPjxsRDPDebUXCVOTBrpjrchwLeVgnsaMDVztV
Ordenar las siguientes letras del alfabeto según cantidad de apariciones, de mayor a menor (en caso de empate, considerar órden alfabético).La respuesta debe estar en minúscula y sin letras repetidas.
#!/usr/bin/env ruby letras="uhERnSOTIiZJTMxuvVLATRfboavhtRwlyUKacuYlOopNWnoMWrUHCEtpcwzEYTWVptoxOlyHEeUMeMcbfEyjAVylxRpxVCRUCXAJFjUGSEUgQxJwrgGEPvIXInuFOAkcXjLdmPmiIzNWUXhYePvckLQotpAUTosytjPjxsRDPDebUXCVOTBrpjrchwLeVgnsaMDVztV" frase=letras.chars.sort { |a, b| a.casecmp(b) }.join.downcase #puts frase.inspect contador=frase.scan(/\w/).inject(Hash.new(0)){|h, c| h[c] += 1; h} #puts contador.inspect orden=contador.sort { |x, y| y[1] <=> x[1] } #puts orden.inspect semiresp="" temp=0 orden.each do |c| if temp==c[1] semiresp+=c[0] else semiresp+=','+c[0] end temp=c[1] end separado=semiresp.split(',') resultado="" #puts separado.inspect separado.each{|x| resultado+=x.chars.sort.join} puts resultado.inspectfuente:
Contar letras con ruby
ordenar las letras alfabeticamente en una frase
interprete de ruby en linea
No comments:
Post a Comment