相似序列 (20 分)

简介: 相似序列 (20 分)

DNA的相似性比对,常用于使用少量人体组织(如毛发等)鉴定人物身份等。本题你需要实现判断两个DNA序列是否相似。


为了简单起见。对于给定的字符串A和B,如果字符串A通过1次变换能得到B,那么称A与B相似。


1次变换可选择以下3种变换之一:


a.在A中任意位置添加(ATCG)任一字符;


b.在A中任意位置删除一个字符;


c.将A中任意位置字符替换为其他字符。


输入格式:


第一行一个整数T,表示共T<20组测试样例。 随后每两行以换行符结尾的字符串A、B为一个测试样例,且A、B均由(ATCG)四种字符组成。(1<=|A|、|B|<=100000)。


输出格式:


对于每个测试样例,如果相似输出"YE5",否则输出"N0"。


输入样例:


在这里给出一组输入。例如:


4
ATCG
ATG
ATCG
ATGG
ATCG
ATTCG
ATCG
ACTG

输出样例:


在这里给出相应的输出。例如:

YE5
YE5
YE5
N0


#include<stdio.h>
#include<string.h>
int main(){
    int T;
    scanf("%d",&T);
    int i,j;
    for(i=0;i<T;i++){
        char s1[100000],s2[100000];
        scanf("%s",s1);
        scanf("%s",s2);
        int x1=strlen(s1);
        int x2=strlen(s2);
        if(x1==x2){
            int w=0;
            for(j=0;j<x2;j++){
                if(s1[j]==s2[j]){
                    w++;
                }
            }
            if(w==x1-1){
                printf("YE5\n");
            }
            else{
                printf("N0\n");
            }
        }
        else if(x1==x2-1){
            int w=0;
            int flag=0;
            for(j=0;j<x1;j++){
                int k=j;
                if(flag){
                    k=j+1;
                }
                if(s1[j]==s2[k]){
                    w++;
                }
                if(s1[j]!=s2[k]&&flag==0){
                    flag=1;
                    j--;
                }
            }
            if(w==x1){
                printf("YE5\n");
            }
            else{
                printf("N0\n");
            }
        }
        else if(x2==x1-1){
            int w=0;
            int flag=0;
            for(j=0;j<x2;j++){
                int k=j;
                if(flag){
                    k=j+1;
                }
                if(s2[j]==s1[k]){
                    w++;
                }
                if(s2[j]!=s1[k]&&flag==0){
                    flag=1;
                    j--;
                }
            }
            if(w==x2){
                printf("YE5\n");
            }
            else{
                printf("N0\n");
            }
        }
}
}
相关文章
|
SQL 消息中间件 数据处理
DataX读取Hive Orc格式表丢失数据处理记录
DataX读取Hive Orc格式表丢失数据处理记录
564 0
|
开发框架 Java Android开发
JNI中调用Java函数
JNI中调用Java函数
116 0
|
自然语言处理 JavaScript 安全
VUE 学习笔记(三) Vue 渲染流程详解
VUE 学习笔记(三) Vue 渲染流程详解
154 1
|
监控 小程序 测试技术
通关必备!软件测试面试小程序,不要钱的一定要看看
软件测试作为一个技术工种,你的项目经历、技术能力,都是面试官最感兴趣的,而想要从容不迫地回答好面试官们问出的技术问题,提前对相关的面试真题进行了解和背诵就非常重要。 那么哪里有软件测试面试真题可以刷呢?这个可以白嫖的软件测试面试小程序,我觉得大家可能需要!!
231 0
|
Python
Python-Pillow给图片加文字
Python-Pillow给图片加文字
103 0
Python-Pillow给图片加文字
|
Java 开发工具 C语言