当前位置: 首页 > wzjs >正文

网站开发主管工作内容英文版网站建设策划方案

网站开发主管工作内容,英文版网站建设策划方案,泸州网站seo,大连html5网站建设价格题目解析 题目名称: 单词拆分(Word Break) 题目描述: 给定一个字符串 s 和一个字符串字典 wordDict,请判断 s 是否可以由 wordDict 中的单词拼接而成。一个单词可以在拆分时使用多次。 示例 string s "leetcod…

题目解析

题目名称: 单词拆分(Word Break)

题目描述: 给定一个字符串 s 和一个字符串字典 wordDict,请判断 s 是否可以由 wordDict 中的单词拼接而成。一个单词可以在拆分时使用多次。

示例

string s = "leetcode";
vector<string> wordDict = {"leet", "code"};
Solution sol;
bool result = sol.wordBreak(s, wordDict); // 返回 true

解释:s 可以被拆分成 "leet" 和 "code",它们都在 wordDict 中。

代码解析

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {// 1. 使用 unordered_set 存储 wordDict 以便 O(1) 查询单词unordered_set<string> wordDictSet(wordDict.begin(), wordDict.end());// 2. 定义动态规划数组 dp,其中 dp[i] 表示 s[0:i] 是否可以拆分vector<bool> dp(s.size() + 1, false);dp[0] = true; // 空字符串可以拆分// 3. 动态规划填充 dp 数组for (int i = 1; i <= s.size(); ++i) {for (int j = 0; j < i; ++j) {// 检查 s[j:i] 是否在 wordDictSet 中,并且前缀部分 s[0:j] 是否可拆分if (dp[j] && wordDictSet.find(s.substr(j, i - j)) != wordDictSet.end()) {dp[i] = true;break; // 只要找到一种可拆分方式就可以停止}}}// 4. 返回 s[0:s.size()] 是否可拆分return dp[s.size()];}
};

详细思路

1. 使用哈希表优化查询

我们将 wordDict 存入 unordered_set,这样可以在 O(1) 时间内查询单词是否存在,避免 O(n) 遍历字典。

2. 使用动态规划

定义 dp[i],表示 s 的前 i 个字符 s[0:i] 是否可以被 wordDict 拆分。

状态转移方程

即,如果 s[0:j] 可以被拆分 (dp[j] == true),并且 s[j:i] 也在 wordDict 里,那么 dp[i] 也为 true。

初始条件

• dp[0] = true,表示空字符串可以被拆分。

计算顺序

• 我们按 i 从 1 到 s.size() 遍历,检查 s[j:i] 是否可拆分。

运行步骤示例

输入:

string s = "leetcode";
vector<string> wordDict = {"leet", "code"};

1. 初始化

• wordDictSet = {"leet", "code"}

• dp = [true, false, false, false, false, false, false, false, false]

(dp[0] = true,其余初始化为 false)

2. 动态规划计算

遍历 i = 1 到 8:

i = 1

• j = 0 → s[0:1] = "l",不在 wordDictSet,跳过。

i = 2

• j = 0, 1 → s[0:2] = "le"、s[1:2] = "e",都不在 wordDictSet,跳过。

i = 3

• j = 0, 1, 2 → s[0:3] = "lee"、s[1:3] = "ee"、s[2:3] = "e",都不在 wordDictSet,跳过。

i = 4

• j = 0 → s[0:4] = "leet",在 wordDictSet,且 dp[0] = true,所以 dp[4] = true。

• dp 变为:

[true, false, false, false, true, false, false, false, false]

i = 5

• j = 0, 1, 2, 3, 4 → s[0:5] = "leetc"、s[1:5] = "eetc" 等都不在 wordDictSet,跳过。

i = 6

• j = 0, 1, 2, 3, 4, 5 → s[0:6] = "leetco" 等都不在 wordDictSet,跳过。

i = 7

• j = 0, 1, 2, 3, 4, 5, 6 → s[0:7] = "leetcod" 等都不在 wordDictSet,跳过。

i = 8

• j = 4 → s[4:8] = "code",在 wordDictSet,且 dp[4] = true,所以 dp[8] = true。

• dp 变为:

[true, false, false, false, true, false, false, false, true]

3. 返回结果

最终 dp[8] = true,返回 true,表示 s 可以拆分。

时间复杂度分析

外层循环:遍历 s 长度 n,复杂度 O(n)。

内层循环:遍历 i 之前的所有 j,最坏情况下 O(n)。

哈希表查找:O(1)。

总复杂度:O(n^2)。

总结

1. 定义 dp[i]:表示 s[0:i] 是否可拆分。

2. 状态转移方程

• dp[i] = true 当 dp[j] == true 且 s[j:i] 在 wordDictSet 中。

3. 时间复杂度 O(n^2),适用于 s 长度较短(一般小于 10^4)。

4. 空间复杂度 O(n),主要是 dp 数组和 unordered_set。

这样,我们成功用 DP 解决了单词拆分问题! 🎯


文章转载自:

http://Wpxa8pyz.gybnk.cn
http://IrG5mtHE.gybnk.cn
http://ZFx9YQ4a.gybnk.cn
http://JgEDyCim.gybnk.cn
http://2jHd4M81.gybnk.cn
http://BREkj1NX.gybnk.cn
http://2U1qq1J6.gybnk.cn
http://4MkDgHDA.gybnk.cn
http://jFIcfHgK.gybnk.cn
http://TQuprCGv.gybnk.cn
http://LvkOYYox.gybnk.cn
http://r4afiVxg.gybnk.cn
http://6yL0dym5.gybnk.cn
http://cCOA9pp0.gybnk.cn
http://LMbQfhy2.gybnk.cn
http://qmLvVNtQ.gybnk.cn
http://84F4QaE4.gybnk.cn
http://o6UkyNt7.gybnk.cn
http://vSmbaeCP.gybnk.cn
http://1bvnRIxu.gybnk.cn
http://DDsebCAJ.gybnk.cn
http://qDSMnpYm.gybnk.cn
http://Bs6bf9my.gybnk.cn
http://pNZPmDLY.gybnk.cn
http://IZf7xAsq.gybnk.cn
http://xynzhrA8.gybnk.cn
http://fvErtHoo.gybnk.cn
http://juw7EQab.gybnk.cn
http://bBgKHzfq.gybnk.cn
http://FU0QQEpO.gybnk.cn
http://www.dtcms.com/wzjs/619085.html

相关文章:

  • 鹤壁建设网站推广公司电话app建设网站公司
  • 视频网站建站费用政务网站网上调查怎么做
  • 嘉兴做网站游戏自助充值网站怎么做
  • 经典模板网站建设高端网站建设合同
  • 网站建设后台和前端腾讯企点官网入口
  • 网站开发建设推荐用书wordpress 主题 首页发布 微博
  • 临沂网站建设做网站网上商店怎么开
  • 昆明做凡科网站毕业设计指导网站建设
  • 如何看一个网站的好坏南京做网站公司哪家好
  • 手机网站建设制作教程视频电商网站建设电话
  • 申报教学成果奖网站建设西部数码网站核验单下载
  • iis网站连接数wordpress 进入
  • 南城网站建设公司策划创意网站建设
  • 最大的开源网站网站秒收录
  • 东莞建设企业网站公司外链群发软件
  • 广东省自然资源厅地址驻马店网站优化
  • 网站品牌栏目建设做网站特别注意什么
  • 哈尔滨网站搜索优化公司做网站建设要什么证
  • 企业网站建设目的意义网站开发微信授权登录
  • 廊坊网站建设方案托管工作总结2023年个人
  • 四川网站建设咨询五易网络
  • 咸宁手机网站建设室内设计师联盟app
  • 网站空间转移wordpress改网站信息
  • 怎么接单做网站线下推广方法有哪些
  • 广西网站建设方案金山屯黄页电话
  • 胶州网站优化价格天津建设工程信息王
  • 上海地产网站建设微网站什么意思
  • 资源库建设网站建设银行网站的目的是什么意思
  • html 好的网站帮企业建设网站和推广网站
  • 历下区住房和城市建设局网站公司网站备案网址