Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1238. Mostrar todas as postagens
Mostrando postagens com marcador 1238. Mostrar todas as postagens

sábado, 30 de janeiro de 2021

URI - 1238 - Combinador - Strings - C

Plataforma: URI

Problema1238

Enunciado:
Implemente um programa denominado combinador, que recebe duas strings e deve combiná-las, alternando as letras de cada string, começando com a primeira letra da primeira string, seguido pela primeira letra da segunda string, em seguida pela segunda letra da primeira string, e assim sucessivamente. As letras restantes da cadeia mais longa devem ser adicionadas ao fim da string resultante e retornada.

Linguagem: C


Solução: 


#include <stdio.h>
int main() {
    int N;
    scanf("%i", &N);
    while (N--) {
        char *palavra1 = (char *) malloc(sizeof(char) * 50), *palavra2 = (char *) malloc(sizeof(char) * 50);
        scanf("%s %s", palavra1, palavra2);
        int tamanhoPalavra1;
        int tamanhoPalavra2;
        int contadorPalavra1 = 0;
        int contadorPalavra2 = 0;
        while (palavra1[contadorPalavra1] != '\0') contadorPalavra1++;
        while (palavra2[contadorPalavra2] != '\0') contadorPalavra2++;
        int maior = contadorPalavra1;
        if (contadorPalavra1<contadorPalavra2) maior = contadorPalavra2;
        int indice = 0;
        while (maior--) {
            if (indice < contadorPalavra1)
                printf("%c", palavra1[indice]);
            if (indice < contadorPalavra2)
                printf("%c", palavra2[indice]);
            indice++;
        }
        printf("\n");
    }
    return 0;
}

URI - 1238 - Combinador - Strings - C++ - Solução Alternativa

Plataforma: URI

Problema1238

Enunciado:
Implemente um programa denominado combinador, que recebe duas strings e deve combiná-las, alternando as letras de cada string, começando com a primeira letra da primeira string, seguido pela primeira letra da segunda string, em seguida pela segunda letra da primeira string, e assim sucessivamente. As letras restantes da cadeia mais longa devem ser adicionadas ao fim da string resultante e retornada.

Linguagem: C++

Solução: 
A solução foi ler as duas strings e verificar qual é a maior, armazenando o maior tamanho na variável "maior". Depois disso, um laço de repetição com tamanho "maior" seria executado, imprimindo intercaladamente os caracteres de cada string. A combinação é feita diretamente na escrita, não é necessário salvar a string combinada.

#include <iostream>
int main() {
    int N;
    std::cin >> N;
    while (N--) {
        std::string palavra1, palavra2;
        std::cin >> palavra1 >> palavra2;
        int tamanhoPalavra1;
        int tamanhoPalavra2;
        int contadorPalavra1 = 0;
        int contadorPalavra2 = 0;
        while (palavra1[contadorPalavra1] != '\0') contadorPalavra1++;
        while (palavra2[contadorPalavra2] != '\0') contadorPalavra2++;
        int maior = contadorPalavra1;
        if (contadorPalavra1<contadorPalavra2) maior = contadorPalavra2;
        int indice = 0;
        while (maior--) {
            if (indice < contadorPalavra1)
                std::cout<<palavra1[indice];
            if (indice < contadorPalavra2)
                std::cout<<palavra2[indice];
            indice++;
        }
        std::cout<<std::endl;
    }
    return 0;
}

quinta-feira, 13 de agosto de 2020

URI - 1238 - Combinador - Strings - C++

Plataforma: URI
Problema1238

Enunciado:
Implemente um programa denominado combinador, que recebe duas strings e deve combiná-las, alternando as letras de cada string, começando com a primeira letra da primeira string, seguido pela primeira letra da segunda string, em seguida pela segunda letra da primeira string, e assim sucessivamente. As letras restantes da cadeia mais longa devem ser adicionadas ao fim da string resultante e retornada.

Linguagem: C++

Solução:
A cada iteração do while, pega uma letra de cada palavra para colocar na palavra final. Quando não houver mais letras em alguma das palavras, então ela será ignorada e só será captada as letras da outra palavra.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
using namespace std;
 
int main() {
 
  int n;
  cin >> n;
  while(n--){
   string palavra1, palavra2, palavra_final;
   palavra_final = "";
   int i = 0;
   int pos_final = 0;
   cin >> palavra1 >> palavra2;
   while(palavra1.length()>i or palavra2.length()>i){
    if(palavra1.length()>i){
     palavra_final += palavra1[i];
     pos_final++;
    }
    if(palavra2.length()>i){
     palavra_final += palavra2[i];
     pos_final++;
    }
    i++;
   }
   cout << palavra_final << endl;
   
  }
 
    return 0;
}

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