study Python 14day

#!/usr/bin/python
#冒泡排序1
def bubblesort(a,n):
    for i in range(n):
        for j in range(1,n-i):
            if(a[j-1]>a[j]):
                a[j-1],a[j]=a[j],a[j-1]

#冒泡排序2
def bubblesort2(a,n):
	flag=True
	k=n
	while flag:
		flag=False
		for j in range(1,k):
			if (a[j-1]>a[j]):
				a[j-1],a[j]=a[j],a[j-1]
				flag=True
		k-=1
		
#冒泡排序3
def bubblesort3(a,n):
	flag=n
	while flag>0:
		k=flag
		flag=0
		for j in range(1,k):
			if(a[j-1]>a[j]):
				a[j-1],a[j]=a[j],a[j-1]
				flag=j
				
#直接插入排序1
def insertsort1(a,n):
	for i in range(1,n):
		for j in range(i-1,-1,-1):
			if(a[j]<a[i]):
				break
		if(j!=i-1):
			temp=a[i]
			for k in range(i-1,j,-1):
				a[k+1]=a[k]
			a[k+1]=temp
			
#直接插入排序2
def insertsort2(a,n):
	for i in range(1,n):
		if(a[i]<a[i-1]):
			temp=a[i]
			for j in range(i-1,-1,-1):
				a[j+1]=a[j]
			a[j+1]=temp

#直接插入排序3
def insertsort3(a,n):
	for i in range(1,n):
		for j in range(i-1,-1,-1):
			if(a[j]>a[j+1]):
				a[j],a[j+1]=a[j+1],a[j]
				
#希尔排序
def shellsort1(a,n):
	for gap in range(n/2,0,/2):
		for i in range(0,gap):
			for j in range(i+gap,n,gap):
				if(a[j]<a[j-gap]):
					temp=a[j]
					k=j-gap
					while k>=0 and a[k]>temp:
						a[k+gap]=a[k]
						k-=gap
					a[k+gap]=temp
					
#希尔排序2
def sheelsort2(a,n):
	for gap in range(n/2,0,/2):
		for j in range(gap,n):
			if(a[j]<a[j-gap]):
				temp=a[j]
				k=j-gap
				while k>=0 and a[k]>temp:
					a[k+gap]=a[k]
					k-=gap
				a[k+gap]=temp
				
#希尔排序3
def sheelsort3(a,n):
	for gap in range(n/2,0,/2):
		for i in range(gap,n):
			for j in range(i-gap,-1,-gap):
				if(a[j]>a[j+gap]):
					a[j],a[j+gap]=a[j+gap],a[j]
					
#直接选择排序1
def selectsort1(a,n):
	for i in range(n):
		nmin=i
		for j in range(i+1,n):
			if(a[j]<a[nmin]):
				nmin=j
		a[i],a[nmin]=a[nmin],a[i]
		
#归并排序
def mergesort(li):
	if len(li)==1:
		return li
	mid=len(li)//2
	left=li[:mid]
	right=li[mid:]
	l1=mergesort(left)
	r1=mergesort(right)
	return merge(l1,r1)
def merge(left,right):
	result=[]
	while len(left)>0 and len(right)>0:
		if left[0]<=right[0]:
			result.append(left.pop(0))
		else:
			result.append(right.pop(0))
	result+=left
	result+=right
	return result

#快速排序
def quicksort(arr):
	if len(arr)<=1:
		return arr
	pivot=arr[len(arr)//2]
	left=[x for x in arr if x<pivot]
	right=[x for x in arr if x>pivot]
	middle=[x for x in arr if x==pivot]
	return quicksort(left)+middle+quicksort(right)
#堆排序
def heapify(arr,n,i):
	largest=i
	l=2*i+1
	r=2*i+2
	if l<n and arr[i]<arr[r]:
		largest=l
	if r<n and arr[largest]<arr[r]:
		largest=r
	if largest!=i:
		arr[i],arr[largest]=arr[largest],arr[i]
		heapify(arr,n,largest)
		
def heapsort(arr):
	n=len(arr)
	for i in range(n,-1,-1):
		heapify(arr,n,i)
	for i in range(n-1,0,-1):
		arr[i],arr[0]=arr[0],arr[i]
		heapify(arr,i,0)

					
		
		
		
		
		
		
		
import sys
while True:
    try:
        s = sys.stdin.readline().strip()
        a = int(s.split()[0])
        b = int(s.split()[1])
        m=a
        n=b
        while(a!=b):
            if a>b:
                a=a-b
            else:
                b=b-a
 
        print(int(m*n/a))
 
 
 
    except Exception:
 
        break

def lifang(a):
    a=float(a)
    return a**(1/3)
 
b=input()
print('%0.1f'%lifang(b))

while True:
    try:
        inlist=list(map(int,input().split()))
        fushu=[]
        zhengshu=[]
        for i in inlist:
            if i<0:
                fushu.append(i)
            else:
                zhengshu.append(i)
        print(len(fushu))
        zhengshu_len=len(zhengshu)
        sum=0
        if zhengshu_len==0:
            print('0.0')
        else:
            for j in zhengshu:
                sum+=j
            print(round((sum/zhengshu_len),1 ))
    except:
        break

while True:
    try:
        a = int(input())
        for i in range(a):
            s = input()
            while len(s)>8:
                print(s[:8])
                s = s[8:]
            print(s.ljust(8,'0'))
    except:
        break

import bisect
while True:
    try:
        n = int(input())
        l = map(int,input().split())
        b = []
        res = []
        for i in l:
            pos = bisect.bisect_left(b,i)
            res+=[pos+1]
            if pos == len(b):
                b.append(i)
            else:
                b[pos]=i
        print(len(b))
        #print(res)
    except:
        break

while True:
    try:
        list1=[]
        arr = input()
        dic = {}
        for i in arr:
            if not (i.isalpha() or i.isdigit() or i.isspace()):
                continue
            else:
                if i in dic:
                    dic[i] += 1
                else:
                    dic[i]=1
        dic=sorted(dic.items(),key = lambda x:x[0])#先按字符ASC排
        dic=sorted(dic,key = lambda x:x[1],reverse=True)#再按统计数目排
        print(''.join(k for (k , v) in dic))
    except:
        break

while True:
    try:
        a,b,c=input(),map(int,input().split()),input()
        print(" ".join(map(str,sorted(b))) if c=="0" else " ".join(map(str,sorted(b,reverse=True))))
    except:break

while True:
    try:
        n=eval(input())
        num=0
        for i in range(n):
            num+=2+3*i
        print(num)
    except:
#        print(-1)
        break

while True:
    try:
        n = int(input())
        c = 0
        for i in range(0,n+1):
            m = (i*i)%(10**len(str(i)))
            if m == i :
                c+=1
        print(c)
    except:
        break

import sys
while True:
    try:
        priceGoods = {'A1':2, 'A2':3, 'A3':4, 'A4':5, 'A5':8, 'A6':6}
        priceMoney = [1 , 2 , 5 , 10]
        numGoods = {'A1':0, 'A2':0, 'A3':0, 'A4':0, 'A5':0, 'A6':0}
        numMoney = [0] * 4
        balance = 0
 
        def printMoney(line):
            print ('1 yuan coin number=%s' % (line[0]))
            print ('2 yuan coin number=%s' % (line[1]))
            print ('5 yuan coin number=%s' % (line[2]))
            print ('10 yuan coin number=%s' % (line[3]))
        def printGoods(priceGoods,numGoods,flag):# 0:sorted goods name;1:sorted num of goods
            if flag == 0:
                for i in range(6):
                    good = 'A'+str(i+1)
                    print (good+' '+str(priceGoods[good])+' '+str(numGoods[good]))
            if flag == 1:
                #print (numGoods)
                numGoodsSorted = sorted(numGoods.items(),key = lambda a:a[1],reverse = True)
                for i in range(6):
                    print (numGoodsSorted[i][0]+' '+str(priceGoods[numGoodsSorted[i][0]])+' '+str(numGoodsSorted[i][1]))
 
        line = input().split(';')[:-1]
        for i in line:
            func = i.split()
            if func[0] == 'r':
                func[1] = func[1].split('-')
                for i in range(6):
                    numGoods['A'+str(i+1)] += int(func[1][i])
                for i in range(4):
                    numMoney[i] += int(func[2].split('-')[i]) #1 2 5 10
                print ('S001:Initialization is successful')
 
            elif func[0] == 'p':
                if int(func[1]) not in priceMoney:
                    print ('E002:Denomination error')
                elif int(func[1]) in [5,10] and numMoney[0] + numMoney[1] * 2 < int(func[1]):
                    print ('E003:Change is not enough, pay fail')
                elif int(func[1]) == 10 and balance > 10:# only print when $10 input
                    print ('E004:Pay the balance is beyond the scope biggest')
                elif numGoods['A1'] == numGoods['A2'] == numGoods['A3'] == numGoods['A4'] == numGoods['A5'] == numGoods['A6'] == 0:
                    print ('E005:All the goods sold out')
                else:
                    numMoney[priceMoney.index(int(func[1]))] += 1
                    balance += int(func[1])
                    print ('S002:Pay success,balance=%d'%(balance))
 
            elif func[0] == 'b':
                if func[1] not in ['A1','A2','A3','A4','A5','A6']:
                    print ('E006:Goods does not exist')
                elif numGoods[func[1]] == 0:
                    print ('E007:The goods sold out')
                elif balance < priceGoods[func[1]]:
                    print ('E008:Lack of balance')
                else:
                    balance -= priceGoods[func[1]]
                    numGoods[func[1]] -= 1
                    print ('S003:Buy success,balance=%d'%(balance))
 
            elif func[0] == 'c':
                if balance == 0:
                    sys.stdout.write('E009:Work failure')#no line break
                else:
                    numCall = [0] * 4 #1 2 5 10
                    for i in range(-1,-5,-1):
                        numCall[i] = min(balance // priceMoney[i] , numMoney[i])
                        balance -= numCall[i] * priceMoney[i]
                        numMoney[i] -= numCall[i]
                    printMoney(numCall)
                    balance = 0
 
            elif func[0] == 'q':
                if func[1] == '0':
                    printGoods(priceGoods,numGoods,1)
                elif func[1] == '1':
                    printMoney(numMoney)
            else:
                sys.stdout.write('E010:Parameter error')#no line break
    except:
        break
发布了65 篇原创文章 · 获赞 0 · 访问量 568

猜你喜欢

转载自blog.csdn.net/u011624267/article/details/103794036