python 귀속 연습
:
f(n)=f(n-1)+1+f(n-1)
n :2^n-1
def func(n,fromm,to,help):
if n==1:
print("move"+" "+str(1)+" "+"from"+" "+fromm+" "+"to"+" "+to)#base case
else:
func(n-1,fromm,help,to) # n-1 fromm help
print("move"+" "+str(n)+" "+"from"+" "+fromm+" "+"to"+" "+to) # n
func(n-1,help,to,fromm) # n-1 help
func(3,"left","right","mid")
2. 인쇄 문자열의 하위 시퀀스: (순서가 같고 연속되지 않을 수 있음)
def func(arr,i,pre):
if (i==len(arr)):
if pre!="":
print(pre)
return
func(arr,i+1,pre+arr[i])
func(arr,i+1,pre)
arr="abc"
arr="".join(arr)
func(arr,0,"")
3. 인쇄 문자열의 전체 배열: (리셋) 사상: i위치는 (i, n-1) 위치의 모든 문자를 한 번 시도(각 위치와 교환), 위치 이후의 무작위 배열
def printAllPermutation(arr,i):
if i==len(arr):
print((''.join(arr)))
m=[] #
for j in range(i,len(arr)):
if arr[j] not in m: #
m.append(arr[j]) #
arr[i],arr[j]=arr[j],arr[i]
printAllPermutation(arr,i+1)
arr[i], arr[j] = arr[j], arr[i]
arr1=list("abc")
arr2=list("acc")
printAllPermutation(arr1,0)
print("----------")
printAllPermutation(arr2,0)
4. 문제: 암소 한 마리가 있는데 1년에 암소 한 마리를 낳고 새 암소는 3년 후에 1년에 암소 한 마리를 낳고 암소는 6년 후에 죽는다. N년 후에 암소가 몇 마리 있습니까?사고방식: f(n)=f(n-1)+f(n-3)-2*f(n-6)#6년 전 암소 개수와 아이 개수를 빼고 2코드를 곱하기:
def count(n):
if n<1:
return 0
if n<=3:
return n
if n<6:
return count(n-1)+count(n-3)
return count(n-1)+count(n-3)-2*count(n-6)
print(count(7))
5, 역순 한 창고 (추가 공간을 차지하지 않음)
def getandremovelastElement(stack): #
result=stack.pop()
if not stack:
return result
else:
last=getandremovelastElement(stack)
stack.append(result)
return last
def reverse(stack):
if not stack:
return
i=getandremovelastElement(stack)
reverse(stack)
stack.append(i)
s=[3,2,1]
reverse(s)
print(s)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.