Menu
CoddyTech

Word Break

Bạn nhận được một chuỗi s và một danh sách từ wordDict. Trả về true nếu bạn có thể chia s thành các phần mà tất cả đều là từ trong wordDict, nếu không thì trả về false.

Các phần giữ nguyên thứ tự và ghép lại sử dụng mỗi ký tự của s đúng một lần. Bạn có thể dùng một từ bao nhiêu lần tùy ý, và không cần dùng hết mọi từ.

Hàm

wordBreak(s: string, wordDict: string-array) → boolean
sstring
chuỗi cần tách thành các từ
wordDictstring-array
các từ bạn có thể dùng, mỗi từ bao nhiêu lần tùy thích
Trả vềboolean
true nếu s có thể được tách thành các từ trong từ điển, false nếu không

Ràng buộc

  • 1 ≤ s.length ≤ 300
  • 1 ≤ wordDict.length ≤ 1000
  • 1 ≤ wordDict[i].length ≤ 20
  • s và mỗi từ chỉ chứa các chữ cái tiếng Anh viết thường.
  • Các từ trong wordDict đều khác nhau.

Ví dụ

Đầu vào
s = "sunflowerseed"wordDict = ["sun", "flow", "flower", "seed"]
Đầu ra
true
Giải thích
Hãy cắt thành sun, flower, seed. Lấy flow sau sun sẽ còn lại er, nhưng không có từ nào bắt đầu bằng phần này, nên từ đầu tiên phù hợp không phải lúc nào cũng là từ đúng.
challenge icon

Câu hỏi mở rộng

Trả về số từ ít nhất mà một phép cắt hợp lệ có thể dùng, hoặc -1 nếu không thể cắt s. Bảng thay đổi như thế nào, và thời gian chạy có thay đổi không?

Đặt lại code
def wordBreak(s, wordDict):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "sunflowerseed"
wordDict = ["sun", "flow", "flower", "seed"]

Đầu ra mong đợi

true