第一個作業:
換位字符詞的判斷思路:
根據師兄的講解需要滿足:
1.長度相同
2.各字符和其數量必須相等
因此,先判斷長度,再將各字符和其數量找到并入字典,將兩字典進行值相等的判斷即可,詳細代碼和思路看我另外一篇博客,代碼寫的特別長,就不在這里寫了,
每個字符詞做成這樣,判斷字典的值是否相等即可

結果:

第二個是找2-1000的素數:
剛開始自己寫沒看別人代碼的時候,用的是厄拉多賽篩法,相比之下減少了機器大量的運算量,是leetcode最高贊的演算法,但我代碼水平和邏輯水平有限,寫了幾十行才完成,留個坑,等能力夠了簡化后再說吧,
下面根據同學和網上資料重寫的代碼:先找到非素數,再減去它即素數

相關代碼:
notsushu=[]
sushu=[]
for value in range(2,1001):
for chu in range(2,value):
if value%chu == 0:
notsushu.append(value) #找到非素數
for value2 in range(2,1001): #減去非素數
if value2 not in notsushu:
sushu.append(value2)
print(sorted(set(sushu)))
print(len(sushu))
第三個作業:
山脈陣列的判斷,將我的思路稍微寫詳細些:
先找到山峰(即最大值)的值和位置,從這一切為二,分別研究左右半邊,先看一邊(左邊),這樣即可:

右邊的用reversed反轉一下=左邊,直接復制粘貼上面改名就行,兩部分滿足條件則是山脈陣列,反之則否,
運行結果:

相關代碼:
Y1=True
Y2=True
num = input("your number")
num_list = list(map(int,str(num)))#將陣列拆分成一個個的數字,放到串列中
max_index = num_list.index(max(num_list))#找到最大值的位置
for value in num_list:
value_index =num_list.index(value)#找到值的位置
if value_index<max_index: #位置保證在山峰左側
if value<=num_list[value_index+1]: #相鄰值的判斷
continue
else:
Y1 = False
elif Y1==False or value_index>=max_index: #保證必須在山峰左側,一過就停止,
break
num_list2 =list(reversed(num_list)) #將右邊反過來變成左邊,復制上面的就可以了
max_index2 = num_list2.index(max(num_list2))
for value2 in num_list2:
value_index2 =num_list2.index(value2)
if value_index2<max_index2:
if value2<=num_list2[value_index2+1]:
continue
else:
Y2= False
elif Y2==False or value_index2>=max_index2:
break
if Y1==True and Y2==True:
print("這是山脈陣列")
elif Y2== False or Y1== False:
print("這不是山脈陣列")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/206959.html
標籤:其他
上一篇:自動化測驗--自動化測驗報告
