国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python高手如何破解Google的面試題 代碼

2019-11-08 02:15:02
字體:
來源:轉載
供稿:網友

算法的流程可以看這個Python高手如何破解Google的面試題

問題的描述: 假設兩個桶容量任意,比如X斤和Y斤,目標是Z斤;要求寫出算法

python 代碼(原創):

def init(X,Y): return set([(0,0),(0,Y),(X,0)])def change(x,y,X,Y): #fill A,fill B,empty A,empty B,A-B,B-A sets = [(X,y)] sets.append((x,Y)) sets.append((0,y)) sets.append((x,0)) if x+y >= Y: sets.append((x-Y+y,Y)) else: sets.append((0,y+x)) if x+y >= X: sets.append((X,y-X+x)) else: sets.append((y+x,0)) return setsdef main_function(X,Y): state_change = {} state_all = init(X,Y) for temp in state_all: state_change[temp] = (0,0) state_now = init(X,Y) while len(state_now) != 0: state_next = set([]) for i in state_now: state_i = change(i[0],i[1],X,Y) #PRint i for j in state_i: if j not in state_all: state_all.add(j) state_next.add(j) state_change[j] = i state_now = state_next return state_changedef get_target(Target, state_change): target = 0 if (Target,0) in state_change.keys(): target = (Target,0) else: if (0,Target) in state_change.keys(): target = (0,Target) if target == 0: return [] ways = [target] #print ways while target != (0,0): ways.append(state_change[target]) target = state_change[target] return waysX = 4Y = 9Target = 6state_change = main_function(X,Y)ways = get_target(Target, state_change)print ways
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣汉县| 新宾| 高台县| 南雄市| 北安市| 兴海县| 博罗县| 景洪市| 蓬安县| 长垣县| 舒兰市| 阿拉善左旗| 和林格尔县| 成安县| 渭南市| 宁远县| 凤城市| 定安县| 淳化县| 平舆县| 广东省| 长顺县| 托克托县| 龙口市| 太谷县| 黄龙县| 封丘县| 玛纳斯县| 赞皇县| 石阡县| 江阴市| 吉隆县| 和林格尔县| 富平县| 马公市| 涡阳县| 扶沟县| 盐源县| 蓬莱市| 冷水江市| 普宁市|