Masiur
BAN USERdef find_closest(l,low,high,val):
if low == high:
return l[low]
elif high == low+1:
if abs(val - l[high]) < abs(val - l[low]):
return l[high]
else:
return l[low]
mid=(low+high)/2
mid_dif = abs(val - l[mid])
left_dif = abs(val - l[mid-1])
right_dif = abs(val - l[mid+1])
if mid_dif == left_dif == right_dif:
closest_from_left = find_closest(l,low,mid-1,val)
closest_from_right = find_closest(l,mid+1,high,val)
if abs(val - closest_from_left) < abs(val - closest_from_right):
return closest_from_left
else:
return closest_from_right
min_dif = min(mid_dif,left_dif,right_dif)
if mid_dif == min_dif:
return l[mid]
elif left_dif == min_dif:
return find_closest(l,low,mid-1,val)
elif right_dif == min_dif:
return find_closest(l,mid+1,high,val)
l = [2,5,6,7,8,8,8,9]
num_to_find = 13
closest = find_closest(l,0,len(l)-1,num_to_find)
print(closest)
word='(((abc))((d)))))'
open_track=[]
close_track=[]
for i in range(0,len(word)):
if word[i] == '(':
open_track.append(i)
elif word[i] == ')':
if not open_track:
close_track.append(i)
else:
open_track.pop()
res=[]
k=0
print(word)
print(open_track)
print(close_track)
for i in range(0,len(word)):
if i in (open_track or close_track):
res.append('-1')
elif word[i] == '(':
res.append('0')
elif word[i] == ')':
res.append('1')
else:
res.append(word[i])
print("".join(res))
- Masiur November 20, 2017