一个 n n n 个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了 [ 1 , n ? 1 ] [1,n-1] [1,n?1] 之间的所有整数,则称之符合“欢乐的跳”,如数组 { 1 , 4 , 2 , 3 } \{1,4,2,3\} {1,4,2,3} 符合“欢乐的跳”,因为差的绝对值分别为: 3 , 2 , 1 3,2,1 3,2,1。
给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。
每组测试数据第一行以一个整数 n ( 1 ≤ n ≤ 1000 ) n(1 \le n \le 1000) n(1≤n≤1000) 开始,接下来 n n n 个空格隔开的在 [ ? 1 0 8 , 1 0 8 ] [-10^8,10^8] [?108,108] 之间的整数。
对于每组测试数据,输出一行若该数组符合“欢乐的跳”则输出 Jolly
,否则输出 Not jolly
。
4 1 4 2 3
Jolly
5 1 4 2 -1 6
Not jolly
1 ≤ n ≤ 1000 1 \le n \le 1000 1≤n≤1000
mapp=list(map(int,input().split()))
length=mapp[0]
data=[]
for item in range(1,length):
value_num=abs(mapp[item]-mapp[item+1])
data.append(value_num)
data=list(set(data))
compare_value=[m for m in range(1,length)]
if data==compare_value:
print("Jolly")
else:
print("Not jolly")
比较简单的一道题目。这里最好就是用set容器,之前用c++的时候,也经常用。这个容器就是,将数列进行排序并且对于重复的元素进行去重。而且py语言,只需要对数列进行set的数列进行强制转换就可以。而不是需要进行set的重新定义。