第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將沒有空格的文本拆分成單詞列表?

如何將沒有空格的文本拆分成單詞列表?

如何將沒有空格的文本拆分成單詞列表?輸入: "tableapplechairtablecupboard..."很多單詞將此類文本拆分為單詞列表并獲取的有效算法是什么?輸出: ["table", "apple", "chair", "table", ["cupboard", ["cup", "board"]], ...]想到的第一件事就是要經歷所有可能的單詞(從第一個字母開始)并找到最長的單詞,繼續(xù) position=word_position+len(word)PS 我們列出了所有可能的單詞。單詞“櫥柜”可以是“杯子”和“板子”,選擇最長。語言:python,但主要的是算法本身。
查看完整描述

3 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

這是使用遞歸搜索的解決方案:


def find_words(instring, prefix = '', words = None):

    if not instring:

        return []

    if words is None:

        words = set()

        with open('/usr/share/dict/words') as f:

            for line in f:

                words.add(line.strip())

    if (not prefix) and (instring in words):

        return [instring]

    prefix, suffix = prefix + instring[0], instring[1:]

    solutions = []

    # Case 1: prefix in solution

    if prefix in words:

        try:

            solutions.append([prefix] + find_words(suffix, '', words))

        except ValueError:

            pass

    # Case 2: prefix not in solution

    try:

        solutions.append(find_words(suffix, prefix, words))

    except ValueError:

        pass

    if solutions:

        return sorted(solutions,

                      key = lambda solution: [len(word) for word in solution],

                      reverse = True)[0]

    else:

        raise ValueError('no solution')


print(find_words('tableapplechairtablecupboard'))

print(find_words('tableprechaun', words = set(['tab', 'table', 'leprechaun'])))

產量


['table', 'apple', 'chair', 'table', 'cupboard']

['tab', 'leprechaun']


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 938 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號