Vamos enumerar 5 maneiras de inverter strings:
- $string | %{-join $_[$_.Length..0]}
- -join([System.Linq.Enumerable]::Reverse($string))
- -join($string).ForEach({[Regex]::Matches($_ , ‘.’ , ‘RightToLeft’)})
- $string[-1..-($pal.Length)] -join ""
- -join (($pal.Length-1)..0 | ForEach-Object { $pal[$_]})
$pal = "Powershell" $reverseV1 = $pal | %{-join $_[$_.Length..0]} Write-Host -ForeGroundColor Yellow $pal":" -NoNewline Write-Host -ForeGroundcolor Cyan $reverseV1 $pal = "Inverte" $reverseV2 = -join([System.Linq.Enumerable]::Reverse($pal)) Write-Host -ForeGroundColor Yellow $pal":" -NoNewline Write-Host -ForeGroundcolor Cyan $reverseV2 $pal = "Strings" $reverseV3 = -join($pal).ForEach({[Regex]::Matches($_ , ‘.’ , ‘RightToLeft’)}) Write-Host -ForeGroundColor Yellow $pal":" -NoNewline Write-Host -ForeGroundcolor Cyan $reverseV3 $pal = "Muito" $reverseV4 = $pal[-1..-($pal.Length)] -join "" Write-Host -ForeGroundColor Yellow $pal":" -NoNewline Write-Host -ForeGroundcolor Cyan $reverseV4 $pal = "Facilmente" $reverseV5 = -join (($pal.Length-1)..0 | ForEach-Object { $pal[$_]}) Write-Host -ForeGroundColor Yellow $pal":" -NoNewline Write-Host -ForeGroundcolor Cyan $reverseV5
Palíndromos são palavras ou frases que podem ser lidas da esquerda para a direita ou da direita para a esquerda, como por exemplo RODADOR.
Vamos utilizar o Powershell para escrever uma função que receba uma palavra como parâmetro e nos diga se ela é um palíndromo. Para tanto, a lógica que vamos utilizar é a de inverter a string e compará-la com ela mesma.
Function ehPalindromo($pal) { $reversePal = -join([System.Linq.Enumerable]::Reverse($pal)) if ($pal -eq $reversePal) { Write-Host -ForegroundColor Green $pal "é palíndromo" } else { Write-Host -ForegroundColor Red $pal "não é palíndromo" } } $palavras = @("RELER","REVIVER","RADAR","ARARA","AMORA","SALAS",` "ANILINA","MUSSUM","CASACA","OSSO","RIR","MIRIM") Write-Host "----------------------------------" Write-Host " P A L Í N D R O M O S" Write-Host "----------------------------------" ForEach ($pal in $palavras) { ehPalindromo($pal) }
Nenhum comentário:
Postar um comentário