Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. def solution(s):
  2.  
  3.     end = len(s) - 1
  4.  
  5.     c = {}
  6.     forward = {}
  7.     backward = {}
  8.     for i in range(len(s) - 1, -1, -1):
  9.         c[s[i]] = c.get(s[i],0) + 1
  10.         backward[i] = c.copy()
  11.  
  12.     c = {}
  13.     for i in range(0, len(s)):
  14.         c[s[i]] = c.get(s[i],0) + 1
  15.         forward[i] = c.copy()
  16.  
  17.  
  18.     window_size = len(s) if len(s) % 2 == 0 else len(s) - 1
  19.     if len(s) % 2 == 0:
  20.         check = forward[end]
  21.         if(len(check) == 2):
  22.             x,y = check.values()
  23.             if x == y:
  24.                 return window_size
  25.  
  26.     everything = forward[end]
  27.     #print(everything)
  28.     #print("WIdnow size : " ,window_size )
  29.     for ws in range(window_size, 0, -2):
  30.         cnt = len(s)-ws+1
  31.         for i in range(0,cnt):
  32.             sp_inc = i
  33.             ep_inc = i+ws
  34.             #print(sp_inc,ep_inc )
  35.  
  36.  
  37.             c_forward = False
  38.             c_backward = False
  39.             sp = sp_inc -1
  40.             if sp >= 0:
  41.                 c_forward = True
  42.             if ep_inc <= end:
  43.                 c_backward = True
  44.                 d2 = backward[ep_inc].copy()
  45.                
  46.             #print(d1,d2,everything)
  47.             result = dict()
  48.             for k,v in everything.items():
  49.                 val0 = 0
  50.                 val1 = 0
  51.                 if c_forward:
  52.                    val0 = forward[sp].get(k,0)
  53.                 if c_backward:
  54.                    val1 = backward[ep_inc].get(k,0)
  55.                 result[k] = v - val0 - val1
  56.                
  57.                 if(result[k] == 0):
  58.                     del result[k]
  59.             if len(result) == 2:
  60.                 x,y = result.values()
  61.                 if x == y:
  62.                     #print(result)
  63.                     return ws
  64.  
  65.  
  66.  
  67.  
  68.  
  69.     return 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement