Problema
Build an RNA string by replacing every DNA character with its partner. Use this complete mapping: A → U, C → G, G → C, T → A. Preserve the original order. No biology knowledge is needed.
Implement dna_to_rna(dna).
Input
dna: The DNA string to transform.
Output
Return the transformed string. Empty input returns an empty string.
Restrições
0 ≤ DNA length ≤ 100,000. Characters are uppercase A, C, G, or T.
Exemplos
Entrada:
dna = "ACGT"
Saída esperada:
expected = "UGCA"
Entrada:
std::string dna = "ACGT";
Saída esperada:
std::string expected = "UGCA";
Entrada:
string dna = "ACGT";
Saída esperada:
string expected = "UGCA";
Explicação
A becomes U, C becomes G, G becomes C, and T becomes A, giving UGCA.
Entrada:
dna = ""
Saída esperada:
expected = ""
Entrada:
std::string dna = "";
Saída esperada:
std::string expected = "";
Entrada:
string dna = "";
Saída esperada:
string expected = "";
Explicação
There are no characters to replace, so the result is empty.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Cada letra do DNA mapeia para exatamente uma letra de RNA, então traduza caractere por caractere.
Dica 2
Use uma busca direta para os quatro símbolos válidos, preservando a ordem original.
Dica 3
Uma entrada vazia deve retornar uma string vazia, e todo caractere já é garantidamente válido.
Complexidade esperada
tempo O(n), espaço extra O(n)
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.