Exemplo n.º 1
0
def wordBreak(s, dict):
    paths = [path for seg in dict for path in find_word_ranges(seg, s)]
    paths.sort()

    reachable = [False for _ in xrange(len(s)+1)]
    reachable[0] = True

    for b,e in paths:
        reachable[e] |= reachable[b]

    return reachable[-1]
def wordBreak(s, dict):
    paths = [path for seg in dict for path in find_word_ranges(seg, s)]
    paths.sort()

    reachable = [False for _ in xrange(len(s) + 1)]
    reachable[0] = True

    for b, e in paths:
        reachable[e] |= reachable[b]

    return reachable[-1]
def wordBreak(s, dict):
    paths = [path for seg in dict for path in find_word_ranges(seg, s)]
    paths.sort()

    if not any(b==0 for b,_ in paths):
        return []

    if not any(e==len(s) for _,e in paths):
        return []

    parents = [[] for _ in xrange(len(s)+1)]
    parents[0] = []

    for b,e in paths:
        parents[e].append(b)

    return [" ".join(s[a:b] for (a,b) in seg)
            for seg in iter_segs(len(s), parents)]
def wordBreak(s, dict):
    paths = [path for seg in dict for path in find_word_ranges(seg, s)]
    paths.sort()

    if not any(b == 0 for b, _ in paths):
        return []

    if not any(e == len(s) for _, e in paths):
        return []

    parents = [[] for _ in xrange(len(s) + 1)]
    parents[0] = []

    for b, e in paths:
        parents[e].append(b)

    return [
        " ".join(s[a:b] for (a, b) in seg)
        for seg in iter_segs(len(s), parents)
    ]