Pesquisar este blog

Livros Recomendados

sábado, 30 de janeiro de 2021

URI - 1235 - De Dentro para Fora - Strings - C

Plataforma: URI
Problema1235

Enunciado:

A sua impressora foi infectada por um vírus e está imprimindo de forma incorreta. Depois de olhar para várias páginas impressas por um tempo, você percebe que ele está imprimindo cada linha de dentro para fora. Em outras palavras, a metade esquerda de cada linha está sendo impressa a partir do meio da página até a margem esquerda. Do mesmo modo, a metade direita de cada linha está sendo impressa à partir da margem direita e prosseguindo em direção ao centro da página.

Por exemplo a linha:

THIS LINE IS GIBBERISH

está sendo impressa como:

I ENIL SIHTHSIREBBIG S

Da mesma foma, a linha " MANGOS " está sendo impressa incorretamente como "NAM  SOG". Sua tarefa é desembaralhar (decifrar) a string a partir da forma como ela foi impressa para a sua forma original. Você pode assumir que cada linha conterá um número par de caracteres.


Linguagem: C


Solução:

A ideia do algoritmo abaixo foi dividir o array "linha" em duas partes: uma do início até a metade (das posições 0 até metade-1) e outra da posição metade até a posição strlen(linha)-1, ou seja, até o fim da linha. Com isso, basta utilizar estruturas de repetição e ler cada uma dessas partes do fim até o início.

#include <stdio.h>
#include <string.h>

int main() {
    
    char linha[102];
    int testes, i, metade;
    scanf("%d", &testes);
    getchar();
    
    while (testes--) {
        
        gets(linha);
        metade = strlen(linha) / 2;
        
        for (i = metade-1; i >= 0; i--)
            printf("%c", linha[i]);
        
        for (i = strlen(linha)-1; i >= metade; i--)
            printf("%c", linha[i]);
        
        printf("\n");
        
    }

    return 0;
}

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas