1393 바이러스 학대 유전자
당신 은 운 좋게 두 가지 물건 을 구 했 습 니 다.
1. 바이러스 의 유전자
2. 유전 자 를 수정 할 수 있 는 장치;
그래서 당신 은 바이러스 유전 자 를 학대 하기 로 결 정 했 습 니 다.
바이러스 유전 자 는 A, C, T, G 네 가지 문자 로 구 성 된 문자열 이다.
당신 이 할 수 있 는 일:
INSERT X ST1 은 기 존 유전자 서열 의 i 위 에 유전자 세그먼트 ST1 을 삽입 한 다 는 뜻 (유전자 세그먼트 도 ATCG 로 구성)
DEL X Y 는 기 존 유전자 서열 의 X 번 째 위치 부터 Y 길이 의 유전자 서열 을 삭제 한 다 는 뜻 이다.
COPY 는 원 유전 자 를 1 부 복제 해 길이 가 배가 되 고, 복제 분 을 원 유전자 뒤에 연결한다 고 밝 혔 다.
지금 당신 은 N 번 의 조작 을 했 습 니 다. 마지막 유전자 의 모습 을 알 고 싶 습 니 다.
입력
첫 번 째 줄 에는 문자열 ST, 바이러스 유전자 가 포함 되 어 있 습 니 다.
두 번 째 줄 에는 N 차 학대 조작 이 있 음 을 나타 내 는 정수 N 이 1 개 포함 되 어 있다.
다음 N 줄 의 각 줄 형식 은 제목 설명 중의 하나 와 같이 데이터 가 합 법 적 임 을 보증 합 니 다.
출력
N 차 학 대 를 거 친 바이러스 유전자 의 모습 출력;
샘플 입력
AATTCCG
3
INSERT 1 AATT
DEL 2 5
COPY
샘플 출력
ATTCCGATTCCG
이 문 제 는 아래 표 시 를 고려 해 야 하 는데 어렵 지 않 지만 BT 입 니 다. C 가 C + + 보다 나 쁜 곳 이 바로 여기에 있 습 니 다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[200002];
char b[100002];
char c[10];
int number,t;
int i;
int local;
int begin,end;
int length;
int length1;
scanf("%s",&a);
scanf("%d",&number);
for(t=0;t<number;t++)
{
length=strlen(a);
scanf("%s",&c);
if(c[0]=='I')
{
scanf("%d %s",&local,&b);
length1=strlen(b);
for(i=length+length1+1;i>=local+length1;i--)
{
a[i]=a[i-length1];
}
for(i=0;i<length1;i++)
{
a[i+local]=b[i];
}
}
if(c[0]=='D')
{
scanf("%d %d",&begin,&end);
length1=end;
for(i=end+begin-1;a[i]!='\0';i++)
{
a[i-length1]=a[i];
}
a[i-length1]='\0';
}
if(c[0]=='C')
{
for(i=length;i<2*length;i++)
{
a[i]=a[i-length];
}
a[i]='\0';
}
}
printf("%s",a);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.