有意义的单词分割——经典dfs题目

import sys
import json


def load_data():
    data = json.loads(sys.stdin.read())
    return data["string"], set(data["word_list"])


def dfs(s, start, words, arr, results):
    if start == len(s):
        results.append(",".join(arr))
        return
    for i in range(start + 1, len(s) + 1):
        word = s[start:i]
        if word in words:
            arr.append(word)
            dfs(s, i, words, arr, results)
            arr.pop()


def main():
    string, words = load_data()
    results, arr = [], []
    start = 0
    dfs(string, start, words, arr, results)
    results.sort()
    print(json.dumps({'results': results}))


if __name__ == "__main__":
    main()

  

猜你喜欢

转载自www.cnblogs.com/bonelee/p/11580576.html
今日推荐