Infinity 的 mRNA

题面描述:
Infinity 最近参加了 HG 大学推理社举办的一场寻宝比赛。比赛中,来自各个学
校的同学将会获得一些密码题目,题目的答案指向学校的某些地点,解出这些题
目将会获得一些分数,前往这些地点会推动剧情的发展。现在 Infinity 看到了一
道题目: AAGGACCGGCCC。 “这一定是 RNA 序列! ”高中生物不错的 Infinity
喊道。 于是他马上写出了如下的序列: UUCCUGGCCGGG。 “题目的这些序列表
示 mRNA 密码子,把每个字母 A 变成 U, U 变成 A, C 变成 G, G 变成 C,就
得到 tRNA 上的对应的反密码子,这些密码子对应的氨基酸都有各自的缩写字母,
让我百度一下。 ” Infinity 激动的解释道。 “哦! 答案是 FLAG, 我们快去国旗杆
吧! ”Infinity 在国旗杆得到了更多的密码, 现在他有 tRNA 对应的氨基酸表示的
缩写字母表,他只需要你把他给你的 mRNA 序列变成 tRNA 序列(不考虑启动
子或终止子。如果你不知道什么是启动子和终止子,请忽略这句话)。
输入数据:
输入第一行是一个整数 n(1<= n<= 100),表示 Infinity 给你的 mRNA 条数。接下
来 n 行,每行有一个字符串 s(|s|<= 300),表示 Infinity 的 mRNA。
输出数据:
对每组测试数据, 在单独的行中输出形如 “ Case #x: ans” 的结果, 表示第 x 条
序列对应的 tRNA 序列为 ans,详见样例。
样例输入:
1
AAGGACCGGCCC
样例输出:
Case #1: UUCCUGGCCGGG
程序源码:

#include <iostream>
#include<string>
using namespace std;

int StrFindOut(char szStr[]);

int main() {
	int nId= 0;
	char szOut[100][300];

	cin >> nId;
	for (int i = 0; i < nId; i++) {
		cin.clear();
		cin.ignore(numeric_limits<streamsize>::max(), '\n');
		cin.get(szOut[i], 300);
	}
	for (int i = 0; i < nId; i++) {
		cout << "Case #" << i+1 << ": ";
		StrFindOut(szOut[i]);
	}
	return 0;
}

int StrFindOut(char szStr[])
{
	int nLength = 0;

	nLength = strlen(szStr);
	for (int i = 0; i < nLength; i++)
	{
		switch (szStr[i]) {
		case 'A': {szStr[i] = 'U'; break; }
		case 'U': {szStr[i] = 'A'; break; }
		case 'C': {szStr[i] = 'G'; break; }
		case 'G': {szStr[i] = 'C'; break; }
		default: {; }
		}
	}
	cout << szStr << endl;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值