với c# static List WordBreak(string input, List wordDict) { List results = new List(); void Backtrack(string remaining, List current) { if (string.IsNullOrEmpty(remaining)) { results.Add(new List(current)); return; } foreach (var word in wordDict) { if (remaining.StartsWith(word)) { current.Add(word); Backtrack(remaining.Substring(word.Length), current); current.RemoveAt(current.Count - 1); } } } Backtrack(input, new List()); return results; }
Bài toán này yêu cầu "liệt kê", liệt kê chứ không phải đếm bạn ạ. Nếu đếm thì có thể dùng quy hoạch động nhẹ nhàng, nhưng một khi đã gọi là "liệt kê" thì phải xét toàn bộ các cấu hình để đưa ra tất cả các tình huống thỏa mãn :D :D :D
Đẳng cấp, code phát xong luôn ^^
dã man -))) đúng dân chuyên lập trình thi đấu nhìn kinh dị thật
Anh topalgo khỏe quá 🐧
video hay quá ạ!
đúng chất dân lập trình thi đấu thì mấy cái bài này nó cg k quá khó
bro quá mạnh
bác khôi này thi lập trình thi đấu hay gì nè, trông cũng căng cực @@
Founder tại TopAlgo - Lập trình, thuật toán và công nghệ, bác này đỉnh lắm
@@baotramnguyen1139 hèn j thấy analyze vững ghê á
mạnh quá
Bên mình có vid trả lời mấy câu trong slide ở 0:01 k ạ
Có bạn. Bạn xem lại video trước trên kênh nhé. Sẽ có video anh Hiệp và anh Khôi trả lời các câu hỏi trong slide
tuy tôi code không giống anh này, nhưng code của tôi không chạy
=)))))
Ủa
backtracking có thể làm luôn trong hàm generate thì code đỡ dài hơn
quan trọng là khi interview ngoài code chạy được ra thì còn phải clean, dễ đọc nữa :)) chứ không cũng tạch
@@maximuss3278 vì người interview nói code hơi dài nên mình mới có ý đó, chứ thực da code như bạn này mình cũng thích, dễ đọc, dễ sửa
bài này xây trie-tree cũng được nhỉ
ở mức độ phỏng vấn thì ko hầm hố đến như vậy đâu :D :D :D
với c#
static List WordBreak(string input, List wordDict)
{
List results = new List();
void Backtrack(string remaining, List current)
{
if (string.IsNullOrEmpty(remaining))
{
results.Add(new List(current));
return;
}
foreach (var word in wordDict)
{
if (remaining.StartsWith(word))
{
current.Add(word);
Backtrack(remaining.Substring(word.Length), current);
current.RemoveAt(current.Count - 1);
}
}
}
Backtrack(input, new List());
return results;
}
bài này dp O(n) thôi sol phức tạp quá @@
len(s)
Bài toán này yêu cầu "liệt kê", liệt kê chứ không phải đếm bạn ạ. Nếu đếm thì có thể dùng quy hoạch động nhẹ nhàng, nhưng một khi đã gọi là "liệt kê" thì phải xét toàn bộ các cấu hình để đưa ra tất cả các tình huống thỏa mãn :D :D :D
Orz orz..Chả có gì để nói, ng chuyên dạy CP đọc xong đề ra luôn kết quả :) bài k phù hợp vs năng lực ứng viên
orz
có phải người k z
hay , nhưng mà cả 2 vẫn đần lắm :))
dạ, mình xin lỗi nếu mình đã làm bạn cảm thấy không thoải mái ạ