AD2
Curso de Tecnologia em Sistemas de Computação
Disciplina: Projeto e Desenvolvimento de Algoritmos
AD2 1° semestre de 2015
Nome:
1a questão (valor 5.0)
Em Biologia, uma estrutura hairpin (grampo de cabelo) é um padrão que pode ocorrer em RNAs de cadeia simples em que um filamento, quando lido em sentidos opostos, contém somente pares de bases complementares. A figura a seguir ilustra uma estrutura hairpin. sentido de leitura
Filamento: GUGCCACGCGUGGCAC
G
U
G
C
C
A
C
G
C
A
C
G
G
U
G
C
bases complementares
As bases complementares são listadas na tabela a seguir:
Base
Complemento
Adenina
Uracila
Guanina
Citosina
Uracila
Adenina
Citosina
Guanina
Uma estrutura hairpin deve ter um mínimo de quatro bases e, obviamente, um número par de bases.
Sua tarefa: Escreva o algoritmo da função ehHairpin(entradas: dna) que receba como parâmetro uma string representando um RNA e determine se esse RNA é uma estrutura hairpin. A função deve retornar verdadeiro se o RNA é uma estrutura hairpin e falso em caso contrário. Na string de entrada, o caractere 'G' representa a base Guanina, o caractere 'A' uma Adenina, o caractere 'U' uma Uracila e o caractere 'C' uma Citosina.
Em sua solução, você pode considerar a existência das funções charAt() e tamanho(), cuja documentação é mostrada a seguir: função charAt(entradas: str, pos)
Retorna uma string contendo o caractere na posição pos da cadeia de caracteres str passada como parâmetro. Exemplo: imprima charAt('CEDERJ', 3)
// imprimiria 'D'
função tamanho(entradas: str)
Retorna o número de caracteres na string str passada como parâmetro.
Exemplos:
imprima tamanho('Dilma')
# imprimiria 5
Exemplos de uso da função. imprima imprima imprima imprima
ehHairpin('GUGCCACGCGUGGCAC')
# imprime verdadeiro ehHairpin('GUGCCACGACGUGGCAC') # imprime falso (número ímpar de bases) ehHairpin('GC') # imprime falso (menos de quatro bases)