파이썬 면접에서 자주 보는 코드 프로그래밍 문제(빠른 정렬, 2분 찾기, 장식기, 단일 모드, 피보나치 수열)

18730 단어

파이썬 면접에서 자주 보는 코드 프로그래밍 문제(빠른 정렬, 2분 찾기, 장식기, 단일 모드, 피보나치 수열)


흰둥이 하나, 잘못이 있으면 바로잡아 주세요. 감사합니다.

1. 빠른 정렬

    
def QuickSort(arr,start,end):
	if start < end:
		i,j = start,end
		temp = arr[i]
		while i < j:
			while (i<j) and arr[i] <= temp:
				i += 1
			arr[j] = arr[i]
			while (i<j) and arr[j] > temp:
			 	j -= 1
			arr[i] = arr[j]
		arr[i] = temp
		QuickSort(arr,start,i-1)
		QuickSort(arr,i+1,end)
	return arr		
QuickSort = lambda arr : arr if len(arr) <= 1 else QuickSort([item for item in arr[1:] if item < arr[0]]) + [arr[0]] + QuickSort([item for item in arr[1:] if item > arr[0]])

2.2점 찾기

    
def BinarySearch(arr,start,end,key):
	if start > end:
		return -1
	mid = start + (end - start)//2
	if key > arr[mid]:
		return BinarySearch(arr,mid+1,end,key)
	elif key < arr[mid]:
		return BinarySearch(arr,start,mid-1,key)
	else:
		return mid
     			
def BinarySearch(arr,key):
	low = 0
	high = len(arr)-1
	while low <= high:
		mid = low + (high-low)//2
		if key > arr[mid]:
			low = mid + 1
		elif key < arr[mid]:
			high = mid - 1
		else:
			return mid
	return -1	

3. 장식기

def A_Outer(func):
	print(2)
	def A_Inner(*args,**kwargs):
		print(3)
		func(*args,**kwargs)
		print(7)
	return A_Inner

def B_Outer(func):
	print(1)
	def B_Inner(*args,**kwargs):
		print(4)
		func(*args,**kwargs)
		print(6)
	return B_Inner

 
@A_Outer
@B_Outer
def func(*args,**kwargs):
	print("5:  func")

#       :   B_Outer,   A_Inner
#    :
1
2
3
4
5:  func
6
7

4. 단일 모드


4.1 Python 자체 모듈 구현


Python의 모듈은 천연적인 단일 모드로 모듈이 생성될 때 자동으로 하나를 생성합니다.pyc 파일, 다음에 이 모듈을 사용할 때 불러오기만 하면 됩니다.pyc 파일은 모듈 코드 호출을 다시 실행하지 않을 때 from my Singleton import Singleton만 있으면 안의 클래스 Singleton을 사용할 수 있습니다
#        mySingleton.py py  
class Singleton:
	def func(self)
		pass
singleton = Singleton()

4.2 장식기로 구현

def Singleton(func):
	_instance = {}
	def _Singleton(*args,**kwargs):
		if func not in _instance:
			_instance[func] = func(*args,**kwargs)
			return _instance[func]
	return _Singleton

@Singleton
class A:
	def __init__(self,x=0):
		self.x = x
a1 = A(1)
a2 = A(2)
print(a1 is a2)   #   True,  a1 a2     	

4.3 사용 클래스 구현

class Singleton(object):
	def __init__(self):
		pass
	@classmethod
	def instance(cls,*args,**kwargs):
		if not hasattr(	Singleton,"_instance")	
			Singleton._instance = Singleton(*args,**kwargs)
		return Singleton._instance
	

5. 피보나치 수열

def Fib(num):
	if num in (1,2):
		return 1
	return Fib(num-1)+(num-2)

좋은 웹페이지 즐겨찾기