Gusto


class Node:
    def __init__(self,val):
        self.left = None
        self.right = None
        self.val = val
import re
import collections
class Solution:
    """
    @param nums: 
    @return: the maximum result of ai XOR aj, where 0 ≤ i, j < n
    """

    def sendMoney(self,mm,amount):
        mm =sorted(mm.items(),key=lambda x:(x[1],x[0]))
        avg = amount // len(mm)
        pos = 0
        res={}
        for i,(k,v) in enumerate(mm):
            if v <= avg:
                amount -= v
                res[k] = v
            else:
                pos = i
                break
        navg = amount//len(mm[pos:])
        rem = amount % len(mm[pos:])
        for i,(k,_) in enumerate(mm[pos:]):
            res[k] = navg + 1 if i < rem else navg
        return res

    def findMatch(self,s):
        #'/api[/\w]*/users/\d+[/\w+_]*[/\w]*'
        ns = re.sub('/users/\d+','/users/{userid}',s)
        print(ns)

        p = '[/\w]+/[\w]*[{\w+}]*[/\w+_]*\w+'

        # p = '[/\w]+/[\w\d]*[/\w+_]*\w+'
        #
        # a = re.findall(p,ns)
        # print(a)
        for m in re.finditer(p, ns):
            print(str(m.start())+str(m.end()))


        # b = re.split(p,ns)
        # mm = collections.defaultdict(str)
        #
        #
        #
        # for k,v in zip(a,b):
        #     mm[k]+=(' ' + v)
        # res = []
        # for i in mm.values():
            # res = re.findall('dyno=web.\d+',i)
            # print(res)
            # for x in res:
            #     print(re.findall('\d+',x))
            # res2 = re.findall('connect=\d+ms',i)
            # # print(res2)
            # for x in res2:
            #     temp = re.findall('\d+',x)
            #     t2 = 0
            #     t2 += sum([int(k) for k in temp])
            #     res.append(t2)

        # print(res)
        
#from Solution import Solution
from Solution import Solution
# obj = Solution()
# ret = obj
# print (ret)
# map = {"anna": 2,"matt" :1,"kevin": 5}
a = ['A','B','C','D','E']
b = [100,150,200,500,600]
map = dict(zip(a,b))
obj = Solution()
urls = '2014-01-09T06:16:53.748849+00:00 heroku[router]: at=info method=POST path=/api/online/platforms/facebook_canvas/users/100002266342173/add_ticket host=mygame.heroku.com fwd="94.66.255.106" dyno=web.12 connect=12ms service=21ms status=200 bytes=782014-01-09T06:16:53.742892+00:00 heroku[router]: at=info method=GET path=/api/users/100002266342173/count_pending_messages host=mygame.heroku.com fwd="94.66.255.106" dyno=web.8 connect=9ms service=9ms status=304 bytes=02014-01-09T06:16:53.766841+00:00 heroku[router]: at=info method=POST path=/logs/save_personal_data host=mygame.heroku.com fwd="5.13.87.91" dyno=web.10 connect=1ms service=42ms status=200 bytes=162014-01-09T06:16:53.772938+00:00 heroku[router]: at=info method=POST path=/api/users/100002844291023 host=mygame.heroku.com fwd="46.195.178.244" dyno=web.6 connect=2ms service=43ms status=200 bytes=522014-01-09T06:16:53.765430+00:00 heroku[router]: at=info method=GET path=/api/users/100005936523817/get_friends_progress host=mygame.heroku.com fwd="5.13.87.91" dyno=web.11 connect=1ms service=47ms status=200 bytes=74982014-01-09T06:16:53.760472+00:00 heroku[router]: at=info method=POST path=/api/users/1770684197 host=mygame.heroku.com fwd="74.139.217.81" dyno=web.5 connect=1ms service=17ms status=200 bytes=6812014-01-09T06:15:15.893505+00:00 heroku[router]: at=info method=GET path=/api/users/1686318645/get_friends_progress host=mygame.heroku.com fwd="1.125.42.139" dyno=web.3 connect=8ms service=90ms status=‍‌‌‍‌‍‌‌‌‌‍‍‌‌‍‍‌‌‌200 bytes=75342014-01-09T06:16:53.768188+00:00 heroku[router]: at=info method=GET path=/api/users/100005936523817/get_friends_score host=mygame.heroku.com fwd="5.13.87.91" dyno=web.13 connect=2ms service=46ms status=200 bytes=75342014-01-09T06:16:53.768188+00:00 heroku[router]: at=info method=GET path=/api/users/100005936523817/get_friends_score'
# ret = obj.findMatch(urls)

dict sort test


# print(ret)
# mydict = {2:2,3:4,1:6}
# for key, value in sorted(mydict.items(), key=lambda x: (x[1],x[0])):
#     print(key, value)

#
# mydict = {2:2,3:4,1:6}
# mydict = sorted(mydict.items(), key=lambda kv:(kv[1], kv[0]))
# for x in mydict:
#     print(x)


embold HTML

import re #regular expression library
def emboldenHTML(input, boldenStrs):
    if not boldenStrs:
        return input
    indexs = [] # start and end indexes of bolden strings in the input
    for pattern in boldenStrs:
        indexs += [[m.start(),m.end()] for m in re.finditer(pattern,input)] # use regular expression to find out all the occurance of bolden strings

    indexs.sort() # sort the indexs of boldens strings, start index ascending or end index ascending
    merged = [] # merged indexes of bolden strings

    # loop through sorted indexes and merged overlappedd ranges
    for i in range(len(indexs)):
        start,end = indexs[i]
        if not merged or indexs[i-1][1] < start:
            merged.append([start,end])
        else:
            merged[-1][1] = end

    lastpos = 0 # keep track of the last position in the input
    res = ''

    # add <b></b> to bolden strs in the input and print result
    for i in range(len(merged)):
        start,end = merged[i]
        # add plain text before the current bolden string, which is between the lastpos and current bolden string's start position
        if lastpos < start:
            res += input[lastpos:start]
        #add the bolden string
        res += '<b>' + input[start:end] + '</b>'
        #update the last position in the input
        lastpos = end

    # add the remaining string in the input
    if lastpos < len(input):
        res += input[lastpos:]

    print(res) # print the result

#test case
emboldenHTML('abcd77abcab',['ab','abc']) # output: <b>abc</b>d77<b>abcab</b>
emboldenHTML('hyatt35342hy',['hy','hyat']) # output: <b>hyat</b>t35342<b>hy</b>

Last updated