Files
leetcode/top-100-liked/86/leetcode_test.go
T
2026-07-23 16:56:50 +08:00

56 lines
1.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package top100liked
import (
"testing"
)
// https://leetcode.cn/problems/word-break/?envType=study-plan-v2&envId=top-100-liked
// 139. 单词拆分
//
// 给你一个字符串 `s` 和一个字符串列表 `wordDict` 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 `s` 则返回 `true`。
// 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。
// 示例 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
//
// 提示:
// - `1 <= s.length <= 300`
// - `1 <= wordDict.length <= 1000`
// - `1 <= wordDict[i].length <= 20`
// - `s` 和 `wordDict[i]` 仅由小写英文字母组成
// - `wordDict` 中的所有字符串 互不相同
//
func wordBreak(s string, wordDict []string) bool {
}
func TestWordBreak(t *testing.T) {
cases := []struct {
name string
s string
wordDict []string
want bool
}{
{"example1", "leetcode", []string{"leet", "code"}, true},
{"example2", "applepenapple", []string{"apple", "pen"}, true},
{"example3", "catsandog", []string{"cats", "dog", "sand", "and", "cat"}, false},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
got := wordBreak(c.s, c.wordDict)
if got != c.want {
t.Errorf("got %v, want %v", got, c.want)
}
})
}
}