切词分词之判断字符串是否能够拆分为字段中的单词

这是一道关于切词分词的问题,目标是判断给定字符串是否能被某个字典中的单词拆分。例如,给定字段{hello, world}和字符串hellohelloworld,可以拆分为hello, hello, world。解法包括递归和动态规划,动态规划可以优化时间复杂度至O(n^2)。" 104027631,9112309,Java语言基础:算术运算符++和--解析,"['Java', '编程语言', '运算符']
摘要由CSDN通过智能技术生成

给定字符串,以及一个字典,判断字符串是否能够拆分为字段中的单词。例如,字段为{hello,world},字符串为hellohelloworld,则可以拆分为hello,hello,world,都是字典中的单词。这是陈利人微博上的一道题目,很简单,但是使用场景确实很多。其实我们可以发现,在计算机中很多听起来牛B的技术,它的原理确不是很复杂。比如对于数据挖掘和机器学习中的很多算法都是基于贝叶斯算法的,概率论中我们都学过。贝叶斯算法介绍

下面直接复制的一种解法,因为对于递归的解法我们都可以实现,就直接贴出代码。看到有人给出了图示和动归的实现,就无节操的复制过来,对自己的切词分词知识体形进行补充。对于切次与分词的介绍,请看另一篇简介:http://blog.csdn.net/zwan0518/article/details/8494982


解决办法之递归解法:

bool solution(string str, set<string> set){
                  int size = str.size();
                  if (size == 0) return true;
                  for(int i = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值