本文主要是介绍笔试题-根据词典中的词语,对文本进行分词,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
def get_res(lexicon, data):'''第一行是一个字符串数组,表示一组词库第二行是一个文本,表示要检查的文本内容想法:想划分最长的词语问题:有一些情况无法被考虑到'''# 80 %lexicon = sorted(lexicon, key=lambda x :len(x), reverse=False)# print(lexicon)cur_data = data[:]for word in lexicon:if word in cur_data:cur = cur_data.split(word)cur_data = "".join(cur)if len(cur_data) == 0:return "true"return "false"def get_res2(lexicon, data):# 动态规划# dp[:i]表示前i字可以被分词成功n = len(data)dp = [False for _ in range( n +1)]dp[0] = Truelexicon = set(lexicon)for i in range(1, n+ 1):if data[i - 1] in lexicon:dp[i] = Trueelse:for j in range(i - 1, -1, -1):if dp[j]:if data[j:i] in lexicon:dp[i] = Trueif dp[n]:return "true"else:return "false"if __name__ == "__main__":lexicon = input().split()data = input()# lexicon = ["my", "name", "is", "red"]# data = "ismynamered"res = get_res2(lexicon, data)print(res)
这篇关于笔试题-根据词典中的词语,对文本进行分词的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!