ALLAN AVELARTechnology Solutions
🍰Boa Tarde,<username class="jsx-708122429">Visitante</username>!Seja bem vindo ao meu website!Progressive Web App (PWA)Instalar em seu dispositivoChromecast Controlsstatus: not playing or showingVolumeDown50%VolumeUpPlayPausestoppedStopResetFullscreenExpandAcesso RestritoConectar / RegistrarEntre com suas credenciais de acessoEspaço de AcessosSolicite seu Código de AcessoDados CadastraisSeus dados pessoais e de acessoProjetos / ServiçosSeu histórico de contrataçõesProdutos / DownloadsSeu histórico de aquisiçõesChromecast AppsSeus contratos de transmissãoCréditos / ComprasSeu saldo e histórico de créditosEspaço de AcessosSeus acessos à conteúdos restritosNotificaçõesNotificações habilitadas para vocêDesconectarDesconectar seu usuárioConteúdos disponíveisHomeSobre Mim6Resumo PessoalUm pouco de como tudo começouResumo ProfissionalUm pouco da minha tragetóriaMetodologia de TrabalhoComo eu faço acontecerMemórias PessoaisConteúdo RestritoCurriculum VitaeConteúdo RestritoViagens & FotosConteúdo RestritoÁreas de Atuação10Todos os meus serviçosResumo de todas as áreasCTO as a ServiceTenha um C-Level de meio períodoCorporate ArchitectureAgilidade e tecnologia como filosofiaSoftware & TechnologyEm desenvolvimentoFrontend DevelopmentEm desenvolvimentoBackend DevelopmentEm desenvolvimentoStrategy & ConsultingEm desenvolvimentoPlatform & DevSecOpsEm desenvolvimentoCustomer ExperienceEm desenvolvimentoAgile CultureEm desenvolvimentoHub de Inovação6Cultura de InovaçãoVantagens e como implementarDistributed LT & BlockchainEm desenvolvimentoData Science & AnalyticsEm desenvolvimentoCybersecurity PlatformEm desenvolvimentoIntelligent AutomationEm desenvolvimentoAI & Machine LearningEm desenvolvimentoCursos & Treinamentos9Distributed LT & BlockchainEm desenvolvimentoCybersecurity PlatformEm desenvolvimentoIntelligent AutomationEm desenvolvimentoFrontend DevelopmentEm desenvolvimentoBackend DevelopmentEm desenvolvimentoPlatform & DevSecOpsEm desenvolvimentoAI & Machine LearningEm desenvolvimentoProgressive Web AppsEm desenvolvimentoAgile CultureEm desenvolvimentoFale ComigoPROJETOS REALIZADOSTodos os meus projetosResumo de todas as áreasInstituições Financeiras3Banco Santander TottaConteúdo RestritoBanco Santander BrasilConteúdo RestritoBanco Safra S.AConteúdo RestritoWeb3 / Blockchain15Bitcoin (BTC)Conteúdo RestritoEthereum VM (ETH)Conteúdo RestritoRipple (XRP)Conteúdo RestritoHyperledger.orgConteúdo RestritoInternet ComputerConteúdo RestritoStarknet (Cairo)Conteúdo RestritoPolkadot (DOT)Conteúdo RestritoDeFi DashboardsConteúdo RestritoToken MarketplacesConteúdo RestritoCrypto CheckoutsConteúdo RestritoCold / Hot WalletsConteúdo RestritoWallet ConnectorsConteúdo RestritoNon Fungible Tokens (NFT)Conteúdo RestritoDescentralized Identities (DID)Conteúdo RestritoDescentralized Organizations (DAO)Conteúdo RestritoProjetos Antigos29TIM | Unidade de Resposta AudívelAdobe Flex, Actionscript 3, Java, SpringACS | Follow EnergyAngularjs, HTML5, CSS3, C#, REST APIACS | Gateway CE50Angularjs, HTML5, CSS3, C, C#, LUASKY | Selinho de NatalActionscript 3, .NET, REST API, JSONIntel | Futuro de PresenteActionscript 3, .NET, REST API, JSONNestlé | Baú de DiversõesAS 3, .NET, REST, Facebook OpengraphMarlboro | Red RacingAdobe Flash, Actionscript 3, JSONHP | Cartucho PirataAdobe Flash, Actionscript 3, REST APIHP | Youtube StoreAdobe Flash, AS3, YouTube Data APICasas Bahia | BahianinhoActionscript 3, .NET, REST API, JSONAdria | TortinhasAdobe Flash, Actionscript 3, PHPUniverso Online | UOL FinanceActionscript 3, REST API, JSONUniverso Online | UOL MaisActionscript 3, REST API, JSONChevrolet | CaptivaActionscript 3, PHP, MYSQLGafisa | Edifício ColaborativoAdobe Flash, Actionscript 3Pão de Açucar | Sommeliers ClubAdobe Flash, Actionscript 3Pão de Açucar | Desafio ColeçõesAdobe Flash, Actionscript 3Antarctica | Circuito OriginalMacromedia Flash, Actionscript 2, XMLNestlé | Nescau 2.0Macromedia Flash, Actionscript 2, XMLSchin RefrigerantesActionscript 2, FMS 2, PHP, MYSQLMercedes-Benz | SLK 2005Actionscript 2, XMLMercedes-Benz | Classe CActionscript 2, XMLMercedes-Benz | Classe AActionscript 2, XMLMercedes Benz | SprinterActionscript 2, XMLMercedes Benz | Motores EletrônicosActionscript 2, XMLBanda NX ZeroMacromedia Flash, Actionscript 2Lew´lara TBWAActionscript 2, PHP, MYSQLMaison CriolaActionscript 2, PHP, MYSQLBondage MusicActionscript 2, PHP, MYSQLBlog PostsHackerRank5Sock MerchantWarm-Up ChallengesCounting ValleysWarm-Up ChallengesRepeated StringWarm-Up ChallengesJumping On CloudsWarm-Up ChallengesLeft RotationWarm-Up ChallengesLegal TermsTermos e CondiçõesPolítica de PrivacidadeIsenção de Responsabilidade
Usuário / SenhaBlockchainEsqueceu sua senha?EntrarNão tem uma conta? Veja uma demostração!
🚀 Fevereiro 22, 2018 ♻ Outubro 18, 2018reading 7 minutos de leitura

Warm-up Challenges ⚡ Repeated String

Estou postando sobre as minhas respostas aos desafios do HackerRank como forma de melhorar meu aprendizado, reforçar meu conhecimento e estabelecer uma compreensão dos conceitos abordados. Se eu ajudar alguém compartilhando ao longo do caminho, melhor ainda!

Repeated String é um dos desafios iniciais com a dificuldade 'EASY'.


Qual o desafio?

Lilah tem uma string, s, de letras minúsculas em inglês que são repetidas infinitamente. Dado um número inteiro, n, encontre e retorne o número de letras a nas primeiras n letras da string infinita de Lilah.

Exemplo

Se a string de Lilah é s = 'abcac' e n = 10, a substring que consideramos é abcacabcac, os 10 primeiros caracteres de sua string infinita. Existem 4 ocorrências da letra a na substring.

O que temos que fazer?

Uma função que retorne um número inteiro de ocorrências da letra a no prefixo de comprimento n na cadeia infinitamente repetitiva.

Parâmetros
  • s = uma string para repetir
  • n = o número de caracteres a considerar

Sample Input

aba
10

Sample Output

7

Solução

function repeatedString(s, n) {
	let amount = parseInt(n / s.length),
		count = s.split('').filter(c => c === 'a').length,
		rest = s.slice(0, n % s.length).split('').filter(c => c === 'a').length;

	return amount * count + rest;
}

Lógica

let amount = parseInt(n / s.length),
		count = s.split('').filter(c => c === 'a').length,
		rest = s.slice(0, n % s.length).split('').filter(c => c === 'a').length;

Toda a lógica está contida nestas três variáveis:

amount é a quantidade de vezes que a string s aparece com base em n da string infinita de Lilah;

count é a quantidade total de a contidos na string s

rest é a quantidade total de a contidos na string resultante do resto da divisão do comprimento determinado n com a string s

Por último, finalizo a função retornando a contagem final. 🖖


🕵Soluções Extras

Outras línguas que eu falo


💎 Ruby

def repeatedString(s, n)
	amount = n / s.size
	count = s.count('a')
	rest = s.slice(0, n % s.size).count('a')

	amount * count + rest
end

🐍 PYTHON 2 & 3

def repeatedString(s, n):
	amount = n // len(s)
	count = s.count('a')
	rest = s.count('a', 0, n % len(s))

	return amount * count + rest

golang GOLANG

func repeatedString(s string, n int64) int64 {
	var rest, amount, count int64
	rest = n % int64(len(s))
	amount = n / int64(len(s))
	count = int64(strings.Count(s, "a"))
	total := amount * count + int64(strings.Count(s[0:rest], "a"))

	return total
}

scala SCALA

def repeatedString(s: String, n: Long): Long = {
	val rest = n % s.length
	val amount = n / s.length
	val count = s.count(_ == 'a')
	val total = amount * count + s.substring(0, rest.toInt).count(_ == 'a')

	return total
}

javaJAVA 7 & 8

static int repeatedString(String s, long n) {
	long rest = n % s.length();
	long amount = n / s.length();
	long count = s.chars().filter(c -> c == 'a').count();
	long total = amount * count + s.substring(0, (int) rest).chars().filter(c -> c == 'a').count();

	return total;
}

php PHP

function repeatedString($s, $n) {
	$rest = substr_count(substr($s, 0, $n % strlen($s)), "a");
	$amount = intval($n / strlen($s));
	$count = substr_count($s, "a");

	return $amount * $count + $rest;
}

Pensamento: Ter fé é assinar uma folha em branco e deixar que Deus nela escreva o que quiser.
Santo Agostinho

💡 Últimos Insights:

Não afirmo que essas respostas são as melhores ou mais eficientes, elas são simplesmente criações da minha mente para resolver o problema naquele momento. Provavelmente hoje eu faria diferente...
Sobre MimResumo ProfissionalMetodologia de TrabalhoMemórias PessoaisCurriculum VitaeFotos & Viagens
ÁREAS DE ATUAÇÃOCTO as a ServiceCorporate ArchitectureSoftware & TechnologyFrontend DevelopmentBackend DevelopmentStrategy & ConsultingPlatform & DevSecOpsCustomer ExperienceAgile Culture
Hub de InovaçãoDistributed LT & BlockchainData Science & AnalyticsCybersecurity PlatformIntelligent AutomationAI & Machine Learning
CURSOS & TREINAMENTOSBlockchain & Distributed LTCybersecurity PlatformIntelligent AutomationFrontend DevelopmentBackend DevelopmentPlatform & DevSecOpsAI & Machine LearningProgressive Web AppsAgile Culture
Hackathons & Prêmios
PROJETOS REALIZADOSWEB3 / BLOCKCHAIN 2017 ~ 2024BitcoinEthereumRippleStarknetDIDInternet ComputerMarketplacesNFTHyperledgerWalletsDAODeFi DashboardsCrypto Checkoutsecurity tokensBANCOS 2016 ~ 2021Santander TottaSafra S.A.Santander BrasilProjetos Antigos 2000 ~ 2016SKYIntelACSNinho SoleilHP YouStoreHP Cartucho PirataMarlboro RacingMercedes BenzTortinhas AdriaChevrolet CaptivaGPA Sommeliers ClubUOL FinanceGafisaSprinterCasas BahiaJVCLew´laraPão de AçucarSchin RefrigerantesNescau 2.0PapaizTV CulturaSpacekidsBondage MusicMaison CriolaAntarctica OriginalNX ZeroSLK 2005Classe AClasse CPetrobrasBraskemNíveaJohnson & JohnsonAbyaraTIM (URA)NestléUOL
Blog PostsHACKERRANK 2017 ~ 2018#sockMerchant#countingValleys#repeatedstring#jumpingOnClouds#leftRotation
Fale Comigo
Isenção de ResponsabilidadePolítica de PrivacidadeTermos e Condições
Este PWA foi construído com ❤ no meu tempo livre 🤸‍♂️ através dos anos...