java如何实现单词拆分
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要为大家展示了java如何实现单词拆分,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下"java如何实现单词拆分"这篇文章吧。给定一个非空字符串 s
千家信息网最后更新 2025年01月31日java如何实现单词拆分
这篇文章主要为大家展示了java如何实现单词拆分,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下"java如何实现单词拆分"这篇文章吧。
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。
说明:
拆分时可以重复使用字典中的单词。
你可以假设字典中没有重复的单词。
示例 1:
输入: s = "leetcode", wordDict = ["leet", "code"]
输出: true
解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。
示例 2:
输入: s = "applepenapple", wordDict = ["apple", "pen"]
输出: true
解释: 返回 true 因为 "applepenapple" 可以被拆分成 "apple pen apple"。
注意你可以重复使用字典中的单词。
示例 3:
输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出: false
答案:
1public boolean wordBreak(String s, List wordDict) {
2 int len = s.length();
3 boolean[] f = new boolean[len + 1];
4 f[0] = true;
5 for (int i = 1; i < len + 1; i++)
6 for (int j = 0; j < i; j++)
7 if (f[j] && wordDict.contains(s.substring(j, i))) {
8 f[i] = true;
9 break;
10 }
11 return f[len];
12}
解析:
f[n]表示前n个字符可以拆分成功。上面代码第7行如果成立就表示前j个字符可以拆分成功并且字符串的j到i拆分成的字符串在wordDict中存在,所以字符串的前i个都能拆分成功。代码比较简单,很容易理解,下面来看一个递归的写法
1public boolean wordBreak(String s, List wordDict) {
2 return wordBreakHelper(s, new HashSet(wordDict), 0);
3}
4
5public boolean wordBreakHelper(String s, Set wordDict, int start) {
6 if (start == s.length())
7 return true;
8 for (int end = start + 1; end <= s.length(); end++) {
9 if (wordDict.contains(s.substring(start, end)) && wordBreakHelper(s, wordDict, end))
10 return true;
11 }
12 return false;
13}
这种解法应该比上面一种更容易理解,其中workBreadhelper(String s,set
Java的特点有哪些
Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
以上就是关于"java如何实现单词拆分"的内容,如果该文章对您有所帮助并觉得写得不错,劳请分享给您的好友一起学习新知识,若想了解更多相关知识内容,请多多关注行业资讯频道。
单词
字符
字典
成功
字符串
程序
内容
对象
应用程序
特点
示例
应用
输入
输出
代码
分布式
篇文章
系统
语言
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发报价百度文库
数据库pid和cid
知网论文检测 数据库
浙江商业软件开发定做价格
网络安全论文研究方向
软件开发有哪些项目管理系统
分布式环境下重复插入数据库
巨野软件开发
快鸽互联网科技有限公司部门
网络安全系统集成
如何提高数据库管理速度
网络安全sql
pubg什么服有俄罗斯服务器
搭建音乐服务器系统
软件开发月工资多少
HCNA网络技术读书心得
好口碑的软件开发方案
数据库边表定义
独行侠字幕软件开发
联通服务器上短信内容恢复
国产新创服务器
图书管理数据库的思维导图
网络安全与执法属于什么大类
学习网络安全履行了什么义务
京东软件开发加班多吗
数据采集系统数据库
网络安全数学证书内容
access数据库入门教程
的软件开发外包公司
软件开发自测试