洛谷B2113、B2114思路分享

90 阅读3分钟

一、洛谷B2113输出亲朋字符串

1.题目展现

题目描述

亲朋字符串定义如下:给定字符串 ss 的第一个字符的ASCII ASCII 值加第二个字符的 ASCIIASCII 值,得到第一个亲朋字符;ss 的第二个字符加第三个字符得到第二个亲朋字符;依此类推。注意:亲朋字符串的最后一个字符由 ss 的最后一个字符ASCII ASCII 值加 ss 的第一个字符的 ASCIIASCII 值。

输入格式

输入一行,一个长度大于等于 22,小于等于 100100 的字符串。

输出格式

输出一行,为变换后的亲朋字符串。输入保证变换后的字符串只有一行。

输入输出样例

输入 #1

1234

输出 #1

cege

2.思路描述

1.读入一个字符串
2.存储字符串的第一位数据(要用滚动数组优化,所以才要存储)
3.将每一位赋值为这一位与下一位的ASCII码之和
4.输出

3.代码呈现(没有太多知识点)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	/*
	1:*/
	string a;//输入一个字符串
	char c;//存储第一位数据
	cin>>a;
	c=a[0];
	for(int i=0;i<a.size(); i++)//遍历a;
	{
		if(i!=a.size()-1)//如果不是最后一个(最后一个要特殊处理)
		{
			a[i]=a[i]+a[i+1];//新字符串的这一位就是这一位和下一位的ASCII码之和
		}
		else
		{
			a[i]=a[i]+c;//否则就是最后一个和第一个
		}
	}
 	cout<<a;//输出
	return 0;
}

输出结果

屏幕截图(1021).png

二、B2144配对碱基链

1.题目展现

题目描述

脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。

而构成 DNA 的碱基共有 44 种:

  • 分别为腺嘌呤(AA
  • 鸟嘌呤(GG
  • 胸腺嘧啶(TT
  • 胞嘧啶(CC

我们知道,在两条互补碱基链的对应位置上,腺嘌呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。

你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。

输入格式

一个字符串,表示一条碱基链。

这个字符串只含有大写字母 AA 、 TT 、 GG 、 CC,分别表示腺嘌呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。

字符串长度不超过 255255

输出格式

一个只含有大写字母 AA 、 T 、 GG 、 CC 的字符串,为与输入的碱基链互补的碱基链。

输入输出样例

输入 #1复制

ATATGGATGGTGTTTGGCTCTG

输出 #1复制

TATACCTACCACAAACCGAGAC

2.思路描述

1.读入一个字符串
2.遍历这个字符串
3.将每一位赋值为与其对应的元素
4.输出

3.代码呈现(会遍历就行)

 #include<bits/stdc++.h>
using namespace std;
int main()
{
	/*
	1:*/
	string a;
	cin>>a; //输入一个字符串
	for(int i=0; i<=a.size();i++)//遍历每一位
	{
		if(a[i]=='A')//a对t
		{
			cout<<"T"; //直接输出
		}
		else if(a[i]=='G')//g对c
		{
			cout<<"C";
		}
		else if(a[i]=='C')//反之亦然
		{
			cout<<"G";
		}
		else if(a[i]=='T')
		{
			cout<<"A";
		}
	}
	return 0;
}


4.输出结果

屏幕截图(1019).png

四、小结

今天分享的两道题比较简单,都是基础知识一定要熟练!!!!