--- title: 判斷數列連續不連續 tags: Code description: Abs --- 判斷數列連續不連續 --- 找出基因群並不是一件容易的工作,有一個計算生物學家想到一個聰明的方法來簡化這個問題。經過他的簡化後,基因群辨識的主要工作會被轉換成: 輸入一個由相異正整數組成的序列 S,然後判斷 S 的內容是否構成連續的一串整數。例如:S=(2,5,3,4) 的內容構成連續的一串整數 2,3,4,5;但是S=(2,6,3,4)的內容並不構成連續的一串整數 (缺了5)。給定一個數字所構成的序列,請撰寫一個程式來判斷這個序列中的數字是否構成連續的一串整數。 輸入範例 1: 2 6 5 輸出範例 1: 5 6 yes 輸入範例 2: 2 5 7 輸出範例 2: 5 7 no ![](https://i.imgur.com/c8LEjWH.png) <br> ```python ## Exmaple input:3 2 5 4 arr = list(map(int,input().split(' '))) ''' split(空白就拆開)-->['3','2''5','4'] map用法: map(convrt type,list) (要轉成的類型,陣列) --->map(int,['3','2''5','4'])---->[3,2,5,4] int類型陣列 arr =[3,2,5,4] ''' del arr[0] arr.sort() ''' del arr[0]|| 刪除第0項(數列大小) 用不到 [3,2,5,4]-->[2,5,4] arr.sort()|| list.sort() 由小到大排序 ex:[2,5,4]---->[2,4,5] ''' for i in range(1,len(arr)): if(arr[i]-arr[i-1] != 1): print(arr[0],arr[len(arr)-1],'no') break ''' for i in range(1,len(arr)): | len([2,4,5]) 回傳int-->3 for i in range(1,3) if 第i項-第(i-1)項 公差為1 --> 如果公差不為1 print(不連續) ex: [2,4,5] if(arr[1]-arr[0]!=1) --> if(4-2 != 1) --->(不連續) 因為前面有sort 所以陣列 (min,max) len(arr)-1 =3-1 =2 (arr[0],arr[len(arr)-1])--->(陣列第一項,陣列最後一項) Final:print(arr[0],arr[len(arr)-1],'no') ''' else: print(arr[0],arr[len(arr)-1],'yes') ```