athxzz
Senior Member
brtue force như nào thế thím tôi chưa tưởng tượng ra? substring ở y chứ x là subsequence màbài này thì brute-force thui mà bác. bên y chỉ lấy substring thì mình cứ phang hết thui2000 *2000
brtue force như nào thế thím tôi chưa tưởng tượng ra? substring ở y chứ x là subsequence màbài này thì brute-force thui mà bác. bên y chỉ lấy substring thì mình cứ phang hết thui2000 *2000
Substring lúc check ở bên X vẫn là O(n) nữa, tổng sẽ là O(n**3) mà huynh?bài này thì brute-force thui mà bác. bên y chỉ lấy substring thì mình cứ phang hết thui2000 *2000
với mỗi substring bắt đầu ừ i (0-len y) xem nó trùng dc dài sub sequence x tới đâu thì O(len(y) * len(x)) là ra dc kết quả đúng ko nhỉ.(substring là chuỗi liên tiếp ko ngắt mà đúng ko bác) so len 2 subsequence dài nhất mới xài dpbrtue force như nào thế thím tôi chưa tưởng tượng ra? substring ở y chứ x là subsequence mà
hmm theo như e tưởng tượng ra thì cứ match letter là múc thôi bên X cho phép sub sequence màSubstring lúc check ở bên X vẫn là O(n) nữa, tổng sẽ là O(n**3) mà huynh?
Em hiểu ý huynh rồi, for (i,j) ở bên y, lúc j tăng thì tăng bên x luôn đúng không, đúng là O(n^2) rồihmm theo như e tưởng tượng ra thì cứ match letter là múc thôi bên X cho phép sub sequence mà
2 thím draft quả solution phát, chẳng nhẽ tôi overthinking dp ngồi debug mãi mới ra
int cnt=0;
int res =0;
for(int i =0 ;i <y.length();i++){
cnt=0;
for(int j=0;i+cnt<y.length() && j<x.length();j++){
if(y.charAt(i+cnt)==x.charAt(j)){
cnt++;
}
}
res = Math.max(res, cnt)
}
return res;
Bài long common subsequence mới cần tới DP. Bài này là 1 sub sequence và 1 substring thì dùng 2 pointer là giải được mà nhỉ. TC: O(len(x) + len(y))tôi cũng thấy lạ, bình thường pv ở mấy công ty Việt chả bao giờ dính thuật.
Btw đề cũng dễ nhớ cho ae quẩy: top down, bottom up chắc chục dòng.
Input: String x and y length < 2000. Find longest common string which is sub sequence of x and is substring of y. Output: Int
2 thím draft quả solution phát, chẳng nhẽ tôi overthinking dp ngồi debug mãi mới ra
def sol(str1, str2):
m, n, i, j = len(str1), len(str2), 0, 0
res = 0
while i < m and j < n:
if str1[i] == str1[j]:
res += 1
i += 1
j += 1
else:
i += 1
return res
Bài long common subsequence mới cần tới DP. Bài này là 1 sub sequence và 1 substring thì dùng 2 pointer là giải được mà nhỉ. TC: O(len(x) + len(y))
x = "bbbbbbbb" y ="abbbb" thì j=0 mãi không lên dc phenPython:def sol(str1, str2): m, n, i, j = len(str1), len(str2), 0, 0 res = 0 while i < m and j < n: if str1[i] == str1[j]: res += 1 i += 1 j += 1 else: i += 1 return res
À em nhầm với startsWith. Thế quả này thêm 1 loop nữa là O(n^2) àx = "bbbbbbbb" y ="abbbb" thì j=0 mãi không lên dc phen
non nớt đấy thímBài long common subsequence mới cần tới DP. Bài này là 1 sub sequence và 1 substring thì dùng 2 pointer là giải được mà nhỉ. TC: O(len(x) + len(y))
Vl thằng nào Fsoft hỏi thuật toán vậy xin cái BUbỏ bê thuật toán 2 tháng mà đi phỏng vấn FPT có câu về DP cỡ medium ngâm mãi mới ra![]()

Chắc là Meta, đi phá băng dự án khách nhưng khách nói không biết thuật toán thì miễn thương lượng


Thời của AI, công nghệ càng đi nhanh mà ko biết những cái nền tảng thì đúng là khỏi nên thương lượng thật.Chắc là Meta, đi phá băng dự án khách nhưng khách nói không biết thuật toán thì miễn thương lượng![]()