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

第一个作业:
换位字符词的判断思路:
根据师兄的讲解需要满足:
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("这不是山脉数组")
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值