第一次培训的作业-换位字符词/找素数/山脉数组的判断

   日期:2020-11-08     浏览:157    评论:0    
核心提示:第一个作业:换位字符词的判断思路:根据师兄的讲解需要满足:1.长度相同2.各字符和其数量必须相等因此,先判断长度,再将各字符和其数量找到并入字典,将两字典进行值相等的判断即可,详细代码和思路看我另外一篇博客,代码写的特别长,就不在这里写了。每个字符词做成这样,判断字典的值是否相等即可结果:第二个是找2-1000的素数:刚开始自己写没看别人代码的时候,用的是厄拉多赛筛法,相比之下减少了机器大量的运算量,是leetcode最高赞的算法,但我代码水平和逻辑水平有限,写了几十行才完成,留个坑,

第一个作业:
换位字符词的判断思路:
根据师兄的讲解需要满足:
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("这不是山脉数组")
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服