这是小编第二次写博客,第一次的博客感谢各路大佬抬爱,临文涕零,不知所言,所以今天就不废话了。
一,判断两个字符串是否为换位符
要求:字符长度相等,字符内元素相同且个数相同
解决方法:1、先将字符串装换成列表,str→list
2、计算长度,比较个数
3、给列表排序,它不按顺序就给它捋一捋
4.最后比较两者是否相等即可
代码如下
str1 = input("请输入第一个字符串:")
str2 = input("请输入第二个字符串:")
a = len(str1)
b = len(str2)
m = list(str1)
n = list(str2)
m.sort()
n.sort()
if a == b:
if m == n:
print("{}和{}为换位符".format(str1,str2))
else :
print("{}和{}不为换位符".format(str1,str2))
else:
print("{}和{}不为换位符".format(str1,str2))
二,判断一数组是否为山脉数组
所谓山脉,总得有峰顶,就此来理解这山脉数组,它要有一个数比旁边的都要高,要大,往左一个比一个矮,往右也是,且只能有一个这样的数。这也称波峰型数字,类似的波谷型就不用我写了吧,毕竟读者们都这么聪明,举一反三,信手拈来。
num=input('请输入数字群:')#创建数组
num=list(int(i) for i in num)
print("你输入的数组为",num)
len=len(num)#得取元素个数
A = num
s = True#开始为真
if len<3:
s = False
for o in range(len-1):
if A[o]>=A[o+1] and o==0:#一开始就往山下跑,怎么能走向峰顶呢
s = False
elif A[o]>A[o+1]:#是不是峰顶,有待退出后执行下一步操作
break
for p in range(o,len-1):#从疑似山顶的数开始比较,若后续还有想成为峰顶的就打死去
if A[p]<=A[p+1]:
s = False
if s:#经过考验修成正果,可为山
print("该数组是山脉数组")
else:
print("该数组不是山脉数组")
三、找到1到1000的所有素数
接下来有大佬出没,我就不瞎搅和了
print(' '.join([str(item) for item in filter(lambda x: not [x % i for i in range(2, x) if x % i == 0], range(2, 1001))]))
print(' '.join([str(item) for item in filter(lambda x: all(map(lambda p: x % p != 0, range(2, x))), range(2, 1001))]))
上面两个都是大佬写的代码,希望小编有生之年能够达到这个高度
今天懒鬼本鬼,就不上网找解决方法了,看了部门两位优秀朋友的文章,深受启发,在此鸣谢二位。
也差不多了今天就水到这 了。