mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 11:34:46 +08:00
Merge pull request #1643 from zhicheng-lee/zhicheng-lee-patch-11
更新 0139.单词拆分.md Java代码
This commit is contained in:
@ -234,11 +234,13 @@ Java:
|
|||||||
```java
|
```java
|
||||||
class Solution {
|
class Solution {
|
||||||
public boolean wordBreak(String s, List<String> wordDict) {
|
public boolean wordBreak(String s, List<String> wordDict) {
|
||||||
|
HashSet<String> set = new HashSet<>(wordDict);
|
||||||
boolean[] valid = new boolean[s.length() + 1];
|
boolean[] valid = new boolean[s.length() + 1];
|
||||||
valid[0] = true;
|
valid[0] = true;
|
||||||
|
|
||||||
for (int i = 1; i <= s.length(); i++) {
|
for (int i = 1; i <= s.length(); i++) {
|
||||||
for (int j = 0; j < i; j++) {
|
for (int j = 0; j < i && !valid[i]; j++) {
|
||||||
if (wordDict.contains(s.substring(j,i)) && valid[j]) {
|
if (set.contains(s.substring(j, i)) && valid[j]) {
|
||||||
valid[i] = true;
|
valid[i] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -248,6 +250,26 @@ class Solution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 另一种思路的背包算法
|
||||||
|
class Solution {
|
||||||
|
public boolean wordBreak(String s, List<String> wordDict) {
|
||||||
|
boolean[] dp = new boolean[s.length() + 1];
|
||||||
|
dp[0] = true;
|
||||||
|
|
||||||
|
for (int i = 1; i <= s.length(); i++) {
|
||||||
|
for (String word : wordDict) {
|
||||||
|
int len = word.length();
|
||||||
|
if (i >= len && dp[i - len] && word.equals(s.substring(i - len, i))) {
|
||||||
|
dp[i] = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dp[s.length()];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 回溯法+记忆化
|
// 回溯法+记忆化
|
||||||
class Solution {
|
class Solution {
|
||||||
private Set<String> set;
|
private Set<String> set;
|
||||||
@ -285,7 +307,7 @@ class Solution {
|
|||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
|
||||||
```python3
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
|
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
|
||||||
'''排列'''
|
'''排列'''
|
||||||
|
Reference in New Issue
Block a user