def canconstruct(target_string:str,arr_of_string,memo={}):
    if target_string is None:
        False
    if len(target_string) == 0:
        return True

    for item in arr_of_string:
        if target_string.find(item) == 0:
            string = target_string[len(item):]
            if canconstruct(string,arr_of_string) == True:
                return True

    return False


val1 = canconstruct('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef',['e','ee','eee','eeee','eeeee','eeeeee'])
# val2 = canconstruct('abcdef',['ab','abc','cd','abcd'])
print(val1)
# print(val2)
ccfbb6bd15fd103e2bb843e394507fb4bbc14879
<mask token>

def canconstruct(target_string: str, arr_of_string, memo={}):
    if target_string is None:
        False
    if len(target_string) == 0:
        return True
    for item in arr_of_string:
        if target_string.find(item) == 0:
            string = target_string[len(item):]
            if canconstruct(string, arr_of_string) == True:
                return True
    return False


<mask token>

def canconstruct(target_string: str, arr_of_string, memo={}):
    if target_string is None:
        False
    if len(target_string) == 0:
        return True
    for item in arr_of_string:
        if target_string.find(item) == 0:
            string = target_string[len(item):]
            if canconstruct(string, arr_of_string) == True:
                return True
    return False


<mask token>
print(val1)

def canconstruct(target_string: str, arr_of_string, memo={}):
    if target_string is None:
        False
    if len(target_string) == 0:
        return True
    for item in arr_of_string:
        if target_string.find(item) == 0:
            string = target_string[len(item):]
            if canconstruct(string, arr_of_string) == True:
                return True
    return False


val1 = canconstruct('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef', [
    'e', 'ee', 'eee', 'eeee', 'eeeee', 'eeeeee'])
print(val1)

def canconstruct(target_string:str,arr_of_string,memo={}):
    if target_string is None:
        False
    if len(target_string) == 0:
        return True

    for item in arr_of_string:
        if target_string.find(item) == 0:
            string = target_string[len(item):]
            if canconstruct(string,arr_of_string) == True:
                return True

    return False


val1 = canconstruct('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef',['e','ee','eee','eeee','eeeee','eeeeee'])
# val2 = canconstruct('abcdef',['ab','abc','cd','abcd'])
print(val1)
# print(val2)