Thông tin các khóa học mình đang hướng dẫn : 28tech.com.vn/
@phuan46210 ай бұрын
uầy e chạy bằng tay bài 20 mới thấy cách giải ghê thật, nào làm lại mới nhớ được cái ý tưởng này, cảm ơn anh rất nhiều :3
@28tech_10 ай бұрын
Hehe, muốn học và làm những bài hay như vậy thì có thể tham khảo lớp C++ của anh nhé
@duylaikhuong3114 Жыл бұрын
2:18 ở đoạn xâu abcaa thì đến xâu abcaab nó vẫn tính tiếp chứ anh tại xâu đấy nó vẫn có 3 ký tự khác nhau mà mong anh rep em mắc ở khúc này hơi lâu r
@tuananhnguyen4033 жыл бұрын
Yêu anh này vleu :3
@28tech_3 жыл бұрын
nghe hơi ghê. haha.
@khavovan82013 жыл бұрын
Đúng á bạn. Anh này mới làm yt mà mik cảm tình thiệt!
@28tech_3 жыл бұрын
@@khavovan8201 ờ chia sẻ cho a là được hehe.
@vuhoangbach1896 ай бұрын
@@28tech_ quảng cáo ghê quá anh ơi :)))
@28tech_6 ай бұрын
@@vuhoangbach189 haha
@codekhongngu3 жыл бұрын
anh ơi cho em hỏi sao chỗ bài 17 a khai báo mảng int cnt kiểu dữ lieeuuj số nguyễn mà cho string vào vẫn đúng ạ
@28tech_3 жыл бұрын
Đấy là char đấy chứ. Char hoặc nó là kí tự và nó cũng là số tương ứng vs mã ascii của kí tự đó
@vinhnguyencao3526 Жыл бұрын
anh ơi trong bài 20.2 với test case đầu tiên nếu đổi s1 thành "timetaproctice" thì xâu con nhỏ nhất chứa "toc" phải là oct nhưng mà viết theo code trong video thì chỉ ra được "taproc" thôi í.
@HatGiongTamHon896 Жыл бұрын
ban đầu m cx tưởng sai cơ nhưng viết code chạy thử vẫn ra oct b ạ
@khoatienbui825 Жыл бұрын
lúc đầu mình cũng nghĩ là phải ra taproc thay vì oct nhưng với câu này if (cnt == s2.length()) thì vòng lặp while kia vẫn đi hết dc chuỗi @@
@buituanhiep15-39 Жыл бұрын
anh ơi ở bài 17, ví dụ nếu test là abcaabc và k=3 thì: abcaab nó vẫn là 1 xâu con có 3 kí tự khác nhau mà anh, nma trong bài em thấy anh bảo đến b thì số lượng kí tự khác nhau đã vượt quá 3 là sao ạ
@sangle-yu2qh Жыл бұрын
cùng thắc mắc, có vẻ e vẫn chưa hiểu bài lắm :( ai chỉ e vơiis ạ :(
@HảiĐứcLưu-f9iАй бұрын
Hay quá anh
@BaoNguyên-u7q2t6 ай бұрын
A ơi, bài 27 nếu input là "1001" thì bị segmentation fault á a
@BDCAT_VuNgocPhuong3 жыл бұрын
ad cho em hoi: for(set :: it iterator it=s.begin();it!=s.end();it++){ cout
@28tech_3 жыл бұрын
Khác nhau mà, trường hợp 2 là nó duyệt từng phần tử của set luôn.
@BDCAT_VuNgocPhuong3 жыл бұрын
@@28tech_ th2 ko dùng con trỏ ạ
@thienquang31192 жыл бұрын
anh ơi cho em xin ảnh background ở chỗ time 1:25:10 với ạ em cảm ơn anh ạ
@28tech_2 жыл бұрын
em tìm ảnh heinsenberg breaking bad là nó ra ấy.
@codekhongngu3 жыл бұрын
A ơi cho e hỏi ở bài 17 , sao cứ dếm bằg k lại phải ans ạ . Cơ mà đây là đếm dãy con liên tục mà , sao chỉ cần duyệt 1 lần như vậy là đc ạ , mong anh giải thích cho e hiểu ạ. Ví dụ như input là abcd 3 : thì đây là 2 sâu con chứ a nhỉ . Nếu như code của a thì là 1 xâu . Mong a gt cho e hiểu
@hungquann37453 жыл бұрын
7:13 đánh dấu nó đã xuất hiện hay chưa có ý nghĩa như nào ạ em vẫn k hiểu lắm
@28tech_3 жыл бұрын
ý là mỗi lần gặp một kí tự mới em sẽ đánh dấu là nó xuất hiện để tăng số lượng kí tự khác nhau mà mình gặp lên 1 đơn vị thôi mà. Tránh trường hợp có nhiều kí tự giống nhau khi đó mình cũng chỉ đếm nó xuất hiện 1 lần ở lần gặp đầu tiên thôi chứ không phải lần nào gặp cũng đánh dấu với đếm.
@khavovan82013 жыл бұрын
12:14 Vì sao ở đoạn này em code là : for (auto x : se1){ for (auto y : se2){ if (x != y) cout
@28tech_3 жыл бұрын
Bởi vì như thế e chỉ so sánh từ x, với 1 trong các từ ở trong set2, chứ ko phải tất cả các từ, muốn chỉ ra x không nằm trong set2 thì phải xét tất cả các từ chứ. Nên phải dùng set2 để find thằng x xem có hay không.
@vietnamnguyen75312 жыл бұрын
bài SUM STRING e chạy code bị văng lỗi: "terminate called after throwing an instance of 'std::length_error' what(): basic_string::_S_create" Thế này là sao vậy anh?
@quyetleduy64402 жыл бұрын
Cho em hỏi bài hiệu của 2 tập từ, tại sao trong if lại so sánh với se2.end() ạ
@28tech_2 жыл бұрын
Em phải học set trước để hiểu rõ hơn nhé
@TrangHoàng-r8d Жыл бұрын
anh ơi anh cho em hỏi câu 27 nếu làm cách đó bị quá thời gian thì còn cách nào tối ưu hơn ko anh?
@c2-34-minhthu72 ай бұрын
anh ơi bài 17 với xâu abcaabc thì ban đầu đếm được 'abc' rồi khúc cuối lại đếm 'abc' là bị lặp rồi, phải ko ạ
@28tech_2 ай бұрын
Anh cũng nhớ rõ đề bài nữa
@huyhieunguyen1995 Жыл бұрын
anh lấy đâu lắm bài tập vậy, chỉ em với
@binhphuc37403 жыл бұрын
anh oi thay vi dung memset sao minh khong dung cnt[256] = {0} o bai 17 ay a
@28tech_3 жыл бұрын
B cũng có thể làm như thế được :D nếu khai báo mảng cnt trong vòng lặp. Nói chung ko quan trọng lắm.
@PhucNguyen-rb3rk2 жыл бұрын
anh oi bai 21, neu khong su dung map thi lam sao a
@28tech_2 жыл бұрын
Này làm ko có map vất vả lắm e ạ
@28tech_2 жыл бұрын
Lại phải for trâu
@luphiniii Жыл бұрын
bài đầu dùng set ngon hơn đó mí bạn
@duylaikhuong3114 Жыл бұрын
how :VV
@luphiniii Жыл бұрын
@@duylaikhuong3114 bạn duyệt 2 vòng lồng nhau nhé :D bạn duyệt qua từng kí tự(vòng 1) mỗi lần duyệt bạn tạo 1 cái set xong bạn duyệt vòng 2 bạn insert từng kí tự tính từ i trở đi (j = i)vào set nếu se.size()==3 bạn ++cnt; lớn hơn 3 bạn break:DDD
@quanohong73933 жыл бұрын
anh ơi phút thứ 44:55 if (ans > i - left + 1) { ans = i - left + 1; index = left; } ans = INT_MAX ạ cái if này có phải luôn đúng ko ạ :(((
@28tech_3 жыл бұрын
Nó chỉ đúng lần đầu thôi, những lần sau thì còn tùy vào i - left + 1 chứ :D
@quanohong73933 жыл бұрын
@@28tech_ à dạ vầng em hỉu òi ạ : )))
@SangNguyen-kr7qj3 жыл бұрын
chỗ khởi tạo hàm set convert(s1) ở bài 2 em không hiểu lắm ạ @@ anh có video nào nói rõ hơn về cách khởi tạo đó không anh
@28tech_3 жыл бұрын
Anh tạo hàm convert rồi trả về set thôi mà
@SangNguyen-kr7qj3 жыл бұрын
@@28tech_ em chưa thấy anh dùng cái đấy bao giờ nên hơi khó hiểu ak :
@SangNguyen-kr7qj3 жыл бұрын
@@28tech_ tức là set ở đây cũng được hàm trả về tương tự int hay bool ở những bài trước đúng kh anh?
@28tech_3 жыл бұрын
@@SangNguyen-kr7qj đúng rồi, e có thể trả về set, map, vector ... mà
@SangNguyen-kr7qj3 жыл бұрын
@@28tech_ vâng ạ em cảm ơn anh ^^
@vupham8570 Жыл бұрын
Cho em hỏi bài 22 tại sao res += (char)(tmp % 10 + '0'); mà không phải là res += (char)(tmp % 10 - '0'); ạ
@13.nguyenviethung42 Жыл бұрын
+ '0' là chuyển từ số sang char còn - '0' là chuyển từ char sang số
@truong62013 жыл бұрын
anh ơi bài 17 test case thứ 2 ( aba 2 ) làm sao mà có 3 xâu con được vậy anh
@28tech_3 жыл бұрын
xâu a, xâu b, xâu aba nhé, là 3 xâu có cùng kí tự đầu cuối.
@truong62013 жыл бұрын
@@28tech_ đề nó hỏi là số xâu con có k ký tự khác nhau mà anh
@28tech_3 жыл бұрын
À sorry a đọc nhầm đề. 2 kí tự khác nhau ah. Ab ba và aba là 3 xâu có 2 kí tự khác nhau.
@BDCAT_VuNgocKhanh3 жыл бұрын
em làm bài loại bỏ 100 bằng find thì không được ac anh giải thích cho e đc k ạ
@28tech_3 жыл бұрын
Bạn thêm điều kiện check kết quả số kí tự bị xóa > 0 thì mới in ra nhé. Thấy người sub AC bảo thế. Còn cách làm thì ko vấn đề gì.
@BDCAT_VuNgocKhanh3 жыл бұрын
@@28tech_ tuyệt vời anh ơiiii
@MinChuong Жыл бұрын
cái testcase thứ 2 của bài 20 : zoomlazapzo vs oza -> output apzo e chưa hiểu lắm e tưởng nó phải là omlaza
@MinhTam-op6xq7 ай бұрын
theo mình là do khi while chạy đánh dấu thì hết while -> for vẫn chạy thì nó sẽ chạy đến khi gặp chữ o để cnt1[s[left]] cnt2[s[left]] tức là omlazapzo đến đây thì nó sẽ rút thành mlazapzo sau đó nó chạy while tiếp thì sẽ đến đc apzo, bài này mình ngâm thấy nó hay lắm.
@attruonggia84333 жыл бұрын
Anh ơi em nghĩ code của bài 17 như thế này mới đúng ạ: int solve2(string &s, int k) { int ans = 0; for (int i = 0; i < s.length() - k +1; i++) { int cnt[256]{0}; int dem = 0; for (int j = i; j < (i + k); j++) { if (cnt[s[j]] == 0) { dem++; cnt[s[j]]++; } } if (d == k) { ans++; } } return ans; } Với từng phần từ của s ở cái vòng lập ngoài thì chỉ duyệt thêm 3 phần tử phía sau nó thôi, phần tử nào xuất hiện lần đầu thì cho cnt[s[j]]++; Sau khi duyệt xong 3 phần tử phía sau phần tử của vòng lập ngoài thì biến dem sẽ đc xác định, rồi dựa vào biến dem đó để xem ans có đc +1 thêm hay không. Em cảm ơn anh ạ
@28tech_3 жыл бұрын
Không được em ạ, ví dụ k =3 đi, giả sử có xâu abccccc thì code của e có đếm được những xâu abc, abcc, abccc hay không?
@attruonggia84333 жыл бұрын
@@28tech_ Em chưa hiểu đề bài lắm, không biết là các xâu con này có liên tục nhau không hay là đứt đoạn cũng được anh nhỉ Vì nếu đứt đoạn cũng được thì tại sao ở chỗ test case cái xâu abc lại chỉ có hai xâu con là "ab" và "bc" mà không có "ac"
@28tech_3 жыл бұрын
@@attruonggia8433 uh xâu con liên tiếp đấy.
@attruonggia84333 жыл бұрын
@@28tech_ Vậy sao cái test case trong video có xâu aba lại có output là 3 vậy anh
@28tech_3 жыл бұрын
@@attruonggia8433 xâu ab, xâu ba, xâu aba là 3 xâu có 2 kí tự khác nhau mà.
@BDCAT_VuNgocPhuong3 жыл бұрын
s.find(x) == string::npos vois s.find(x) == s.end() cg giong nhau ha anh
@28tech_3 жыл бұрын
Uh nhưng nó dùng cho string vs set
@xuannguyenthiminh75493 жыл бұрын
Anh có thể làm về OOP trong C++ đc ko anh?
@28tech_3 жыл бұрын
Chưa tới b ơi. Còn mấy phần nữa mới tới oop được nhé.
@angVanHuy-tf2rv3 жыл бұрын
mấy bài này khoai quá
@28tech_3 жыл бұрын
Phần 3 còn khoai hơn :v
@ngoctutranhoang97252 жыл бұрын
tinh ra bai 20.2 can tu duy that su luon ay ma cach giai anh hay vai em co gang tim trg hop de chung minh anh sai nhg deu ko tim dc :))
@28tech_2 жыл бұрын
Hahaha mới học đã thế rồi 😂😂😂
@quanohong73933 жыл бұрын
làm phần 3 đi anh
@28tech_3 жыл бұрын
Uh có video rồi mai mình up nốt phần 3.
@binhphuc37403 жыл бұрын
anh oi bai 21 ay lam theo de bai thi minh chi can in ra so ki tu phan biet cua xau la duoc anh nhi =)) de khong chat che lam :D
@28tech_3 жыл бұрын
Không được, ví dụ test bbaac thì xâu con ngắn nhất khi đó phải là baac thì mới đủ chứa cả a, b, c e.
@binhphuc37403 жыл бұрын
@@28tech_ ah :D em cam on anh a
@MinhTran-fo1yu2 жыл бұрын
B21 làm set nhanh hơn mà anh
@levanphong42753 жыл бұрын
Anh là sinh viên PTIT ạ
@28tech_3 жыл бұрын
Đúng rồi b.
@levanphong42753 жыл бұрын
@@28tech_ chào a hi em khoá D20 ạ
@28tech_3 жыл бұрын
@@levanphong4275 Ờ thế học chăm chỉ tí ko cuối kì lại trượt :v