Eric524 2021-04-23 10:47 采纳率: 0%
浏览 85

请问这道题要用什么思路解决?

Description

转座子指一段可以从原位上单独复制或断裂下来,环化后插入另一位点,并对其后的基因起调控作用的DNA序列,
即转座子在基因序列中没有特定位置。已知某原核生物的某段基因中含有一个转座子。现给出多个个体相关基因序列
(用连续正整数编号基因片段),设计程序找出转座子。

 

Input

第一行,一个数字n,表示相关基因序列所含有基因片段的个数。

第i(100>=i>=2)行,每行n个数字,表示第(i-1)个个体相关基因序列。

 

Output

一个数字,即转座子对应编号。若无法确定转座子,输出“-1”.

 

Sample Input 1

6

1 2 3 4 5 6

1 3 2 4 5 6

1 3 4 5 2 6

2 1 3 4 5 6

 

Sample Output 1

2

 

Sample Input 2

5

1 2 3 4 5

1 3 2 4 5

 

Sample Output 2

-1

 

Hint

对于样例1,基因片段1、3、4、5、6位置不变,2位置不确定,则转座子为2.

对于样例2,基因片段1、4、5位置不变,2、3位置不确定,则无法确定转座子为2或3.

对于100%的数据:n<=50,且基因片段编号均属于区间[1,n]且不重复.

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-14 22:07
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    ```python

    读取输入

    n = int(input()) gene_sequences = [] for _ in range(n): gene_sequence = list(map(int, input().split())) gene_sequences.append(gene_sequence)

    找出转座子

    transposon = -1 for i in range(n): count = 0 idx = 0 for j in range(1, n+1): if j not in gene_sequences[i]: count += 1 idx = j if count == 1: transposon = idx break

    输出结果

    print(transposon)

    样例1中,对应的基因片段的情况如下:
    1 : 1 2 3 4 5 6
    2 : 1 3 2 4 5 6
    3 : 1 3 4 5 2 6
    4 : 2 1 3 4 5 6
    只有第二行的基因片段2的位置不确定,因此转座子为2。
    样例2中,对应的基因片段的情况如下:
    1 : 1 2 3 4 5
    2 : 1 3 2 4 5
    由于基因片段2和3的位置都不确定,无法确定转座子,所以输出结果为-1。
    评论

报告相同问题?