#26 [C++]. Hướng Dẫn Giải Bài Tập Xâu Kí Tự Trong C++ Phần I

  Рет қаралды 89,115

28tech

28tech

Күн бұрын

Пікірлер: 134
@28tech_
@28tech_ 2 жыл бұрын
Thông tin các khóa học mình đang hướng dẫn : 28tech.com.vn/
@28tech_
@28tech_ 3 жыл бұрын
Các bạn click vào thời gian từng bài mình để ở phần mô tả nó sẽ tới bài mà bạn cần nhé.
@BDCCN-NguyenVanTu
@BDCCN-NguyenVanTu 3 жыл бұрын
Cảm ơn a rất nhiều , a dạy hay vcđ thề, học cuốn dã man
@28tech_
@28tech_ 3 жыл бұрын
Thank you em, hehe.
@monboy4903
@monboy4903 Жыл бұрын
mê thầy dạy quá
@minhdTaisohate
@minhdTaisohate 8 күн бұрын
cam on anh
@luphiniii
@luphiniii Жыл бұрын
bài 7 ấy ạ :))))em thấy tổ hợp chập 2 của n dù sao cũng phải cộng thêm với n cho trường hợp xâu có 1 phần tử nữa nên em lưu hết vô map xong tính tổng từ 1 đến n luôn:D nó là như này anh ạ int sum=0; for(auto x:mp) sum += x.second*(x.second+1)/2; cout
@BDCPTTranTrungKien
@BDCPTTranTrungKien 3 жыл бұрын
Tuyệt vời anh ơi
@28tech_
@28tech_ 3 жыл бұрын
Thank you :D
@NguyễnLong-o1t
@NguyễnLong-o1t 7 ай бұрын
em cảm ơn anh!
@BDCAT_VuNgocPhuong
@BDCAT_VuNgocPhuong 3 жыл бұрын
ad cho em hỏi ví dụ bài sap xep tăng giảm mảng mà ko truyền tham chiếu thì mảng lúc sau vẫn bị thay đổi thứ tự khác j so với truyền tham chiếu ạ
@28tech_
@28tech_ 3 жыл бұрын
mảng thực chất nó là hằng con trỏ rồi, nên bạn gọi hàm ko cần truyền tham chiếu nó vẫn sẽ thay đổi sau khi hàm kết thúc. Còn vector, string hay biến thông thường thì khác, phải truyền tham chiếu. Bạn có thể hiểu đơn giản lúc bạn truyền tham số là mảng thì cái hàm đó làm việc trực tiếp với địa chỉ của các phần tử trong mảng và mọi thay đổi sẽ được giữ nguyên.
@BDCAT_VuNgocPhuong
@BDCAT_VuNgocPhuong 3 жыл бұрын
@@28tech_ for(char x:s) em chay bij loi em dùng for(int i=0;i
@28tech_
@28tech_ 3 жыл бұрын
@@BDCAT_VuNgocPhuong được mà, dùng for each thì nó tiện hơn thôi.
@tuando2393
@tuando2393 3 жыл бұрын
Cám ơn thầy
@28tech_
@28tech_ 3 жыл бұрын
Bạn thôi, ko phải thầy đâu.
@xuannguyenthiminh7549
@xuannguyenthiminh7549 3 жыл бұрын
Cho em hỏi tại 1:23:35 vì sao lại dùng &x vậy? Em code thiếu & chạy chương trình bị sai đáp số :(
@28tech_
@28tech_ 3 жыл бұрын
Khi mà e duyệt chuỗi hoặc mảng, vector, set ... mà mình muốn thay đổi giá trị mà mình duyệt qua thì sẽ phải thêm truyền tham chiếu vào nhé. nếu e ko chuyền tham chiếu thì giá trị của kí tự x trong xâu a, b sẽ ko được thay đổi mặc dù trong vòng for e thay đổi 5 thành 6 hoặc ngược lại. Nói chung cứ khi nào nhập mảng, hoặc muốn thay đổi giá trị mà vòng for each duyệt qua em phải có tham chiếu.
@BDCAT_VuNgocPhuong
@BDCAT_VuNgocPhuong 3 жыл бұрын
@@28tech_ ad cho em hỏi ví dụ bài sap xep tăng giảm mảng mà ko truyền tham chiếu thì mảng lúc sau vẫn bị thay đổi thứ tự khác j so với truyền tham chiếu ạ
@HatGiongTamHon896
@HatGiongTamHon896 Жыл бұрын
@@BDCAT_VuNgocPhuong mảng là trường hợp đặc biệt vì bản thân nó đã là con trỏ r b ah
@monboy4903
@monboy4903 Жыл бұрын
hay quá anh ạ
@hoacucdai9378
@hoacucdai9378 3 жыл бұрын
Hay quá a ơiiii
@28tech_
@28tech_ 3 жыл бұрын
Thanh you e :D
@SangNguyen-kr7qj
@SangNguyen-kr7qj 3 жыл бұрын
anh ơi tại sao bài 15 dòng 35 khi dùng -'0' thì nó lại chuyển về số ạ?
@28tech_
@28tech_ 3 жыл бұрын
Lấy mã ascii trừ cho nhau thôi e. Thì nó sẽ ra số tương ứng với kí tự số đó.
@khoilevan6084
@khoilevan6084 Жыл бұрын
cho e hoi a em dung hàm thì sao có thể cin hay get line được ạ trong khi chuong trinh chạy từ hàm main :))
@tuanduy1033
@tuanduy1033 Жыл бұрын
1:20:50 tại sao lại là a[x-'a'] vậy ạ
@28tech_
@28tech_ Жыл бұрын
Để chuyển nó thành chỉ số tương ứng tính từ 0 em
@nguyenhoa5409
@nguyenhoa5409 3 жыл бұрын
24:21 cái map(string, int) mp; là cg đấy anh với lại cái string res="" để làm gì đấy ạ
@28tech_
@28tech_ 3 жыл бұрын
Em xem phần video về map để rõ hơn nhé. Nó lại là cả 1 phần kiến thức khác.
@ytnt6829
@ytnt6829 Жыл бұрын
anh ơi cho e hỏi là có cách nào thay một từ trong xâu thành một từ khác không anh ví dụ mình thay từ anh thành em trong xâu " Anh thích chó "
@ytnt6829
@ytnt6829 Жыл бұрын
Anh ơi với những xâu không có dấu cách thì làm sao ạ
@lynxxowl
@lynxxowl Жыл бұрын
bài 15 tại sao trong xâu có số âm thì phải chuyển từ -'0' thành +'0' mới ra v ạ
@tranucan3407
@tranucan3407 Жыл бұрын
anh ơi em bị lỗi vector subscript out of range thì sửa như thế nào vậy anh
@reg_knox
@reg_knox 3 жыл бұрын
Bruno Fernandes: 2 thứ mà tôi không thể thiếu đó là bóng đá và Juan Mata Còn em 2 thứ không thể thiếu là bài giảng của anh lộc và MU:))
@28tech_
@28tech_ 3 жыл бұрын
Haha, cố gắng học tốt là ok rồi :D.
@hungquann3745
@hungquann3745 3 жыл бұрын
cho em hỏi thêm về *max_element(a,a+26) ở bài 13 1:20:35 ạ
@28tech_
@28tech_ 3 жыл бұрын
Đấy là lấy về phần tử có giá trị lớn nhất trong mảng a nhé.
@tuannguyet5360
@tuannguyet5360 Жыл бұрын
dạ bài cúi nếu trong xâu có số âm thì sao ạ ví dụ như: fhdhdh-5436hdhhgf98hfh5
@truyensieuhay1886
@truyensieuhay1886 3 жыл бұрын
anh ơi em làm for each for(char x : s) thì nó báo"Error: Range-based loops are not allowed in C++98 thì sửa phần mềm thế nào ạ . em dùng devc 5.11 mà. em sửa lại theo tìm kiếm tuần tự int i = 0 đến hết thì nó mới chạy :((
@28tech_
@28tech_ 3 жыл бұрын
Em dùng chuẩn C++ 98 nó chưa có for each. Nếu code bằng dev C thì vào Tool->Compiler Option -> setting -> Code generation -> Language standard -> GNU C++11
@truyensieuhay1886
@truyensieuhay1886 3 жыл бұрын
@@28tech_ vâng em vừa tìm được trên stack rồi ạ
@suthatthuvi6435
@suthatthuvi6435 2 жыл бұрын
String world For(ss> work) Cho em hỏi word k có giá trị cụ thể thì sao nó xác định đc để mà lặp ạ
@28tech_
@28tech_ 2 жыл бұрын
Em hiểu sai rồi, while(ss >> word) thì mỗi lần nó tách 1 từ trong stringstreaam để gán cho word, sau từ cuối cùng ko gán được thì ss >> word trả về false thì sẽ dừng.
@suthatthuvi6435
@suthatthuvi6435 2 жыл бұрын
@@28tech_ em hiểu r ạ em cảm ơn anh nhìu
@TrinhCongTrung
@TrinhCongTrung 3 жыл бұрын
mình gặp bài tập đếm xem có bao nhiêu loại chữ cái trong xâu VD: input:banana có 3 chữ cái a,b,n nên output=3 có hướng giải nào cho loại này ko nhỉ
@28tech_
@28tech_ 3 жыл бұрын
Bao nhiêu chữ cái khác nhau ấy chứ ? Đơn giản lắm, em chỉ cần insert từng kí tự vào set xong in ra số lượng phần tử trong set là được, hoặc dùng mảng đánh dấu, cũng được nhé. ideone.com/K9TkqG
@ucanhly1166
@ucanhly1166 2 жыл бұрын
mấy bài tập này hồi xưa anh học cách giải ở đâu vậy ạ.Em tìm nguồn tiếng anh tự học mà bài không giống ạ.
@28tech_
@28tech_ 2 жыл бұрын
học cách giải từ nhiều nơi lắm em ạ, chứ ko có quyển sách hay trang web nào nó đầy đủ cả.
@thinguyenhuynh9280
@thinguyenhuynh9280 2 жыл бұрын
cho em hỏi là nếu xâu chẵn giống abbcca là xâu chẵn thì mình làm sao ạ
@28tech_
@28tech_ 2 жыл бұрын
Câu hỏi của em ko rõ nghĩa
@dianadev1702
@dianadev1702 2 жыл бұрын
int max_val = *max_element(a , a+26) : mình thêm con trỏ * có tác dụng gì vậy ah . Bỏ đi có được ko ạ ? : Bài 13
@28tech_
@28tech_ 2 жыл бұрын
Ko bỏ được, * là toán tử giải tham chiếu
@ngthtuyen98
@ngthtuyen98 2 жыл бұрын
anh ơi bài tính tổng các số trong xâu ấy nếu người ta kêu mình tính luôn trung bình cộng thì mình nên đặt biến để đếm các chữ số như thế nào vậy ạ?
@28tech_
@28tech_ 2 жыл бұрын
có gì khó khăn nhỉ, em dùng thêm 1 biến đếm nữa, cứ gặp số 1 số thì tăng biến đếm lên, e có thể gửi code em code a xem thử.
@ngthtuyen98
@ngthtuyen98 2 жыл бұрын
@@28tech_ dạ vâng em ra được ròi em cám ơn anh ạ
@chilinhtinh1190
@chilinhtinh1190 2 жыл бұрын
cái pangram ý anh nếu nó trùng một kí tự trong mảng thì nó ko có đủ 26 chữ cái thì sao ạ
@28tech_
@28tech_ 2 жыл бұрын
Ko sao, trùng anh cũng chỉ đánh dấu 1 lần mà.
@phuan462
@phuan462 10 ай бұрын
cái bài dùng hàm stoll á a, nếu mà kết quả vượt qua 10^18 thì sao ạ
@28tech_
@28tech_ 10 ай бұрын
Ko dùng được em ạ, lớn hơn long long em phải lưu nó như xâu ký tự
@Duckprofessor02
@Duckprofessor02 3 жыл бұрын
a ơi cho em hỏi em có dùng cái hàm stoll mà sao không được ạ
@28tech_
@28tech_ 3 жыл бұрын
E chạy vs chuẩn C++ 11 mới có. Ở Dev c thì vào tool->compiler option->setting->code generation->language standard->GNU C++11.
@Duckprofessor02
@Duckprofessor02 3 жыл бұрын
@@28tech_ e cảm ơn a do em chạy cái ISO C++11
@tdml123
@tdml123 Жыл бұрын
Dạ cho em hỏi những bài này có trong khóa học của anh không ạ
@28tech_
@28tech_ Жыл бұрын
Khoá của a có bài tập này và còn nhiều hơn nữa
@Wedslkgncx
@Wedslkgncx 2 жыл бұрын
sao em không thấy file bài tập ạ
@BDCAT_VuNgocPhuong
@BDCAT_VuNgocPhuong 3 жыл бұрын
very good!
@28tech_
@28tech_ 3 жыл бұрын
Thank you :D
@hungquann3745
@hungquann3745 3 жыл бұрын
anh ơi em muốn tìm một số nhỏ nhất xuất hiện trong xâu nhưng em dùng ý tưởng bài 16 không được ạ anh cho em giải pháp được ko ạ ?
@28tech_
@28tech_ 3 жыл бұрын
em có khởi tạo số nhỏ nhất là 1 số rất lớn hay ko? Chỉ thay hàm max thành min, với tạo kết quả là 1 số rất lớn thay vì rất nhỏ thôi mà.
@BDCPT-TrinhXuanTung
@BDCPT-TrinhXuanTung 3 жыл бұрын
e dung for( char x:s) loi === C:\Users\Administrator\Documents\Untitled3.cpp [Error] range-based 'for' loops are not allowed in C++98 mode co sua dc ko a
@28tech_
@28tech_ 3 жыл бұрын
E cài chuẩn c++11 đi nhé. Vào dev c++ chọn tool-compiler option-setting-code generation-language standard-gnu c++11 là được
@puongnguyen4073
@puongnguyen4073 Жыл бұрын
anh ơi Bài 9 có lộn ko ạ, M là số chữ số mà nó là 1
@28tech_
@28tech_ Жыл бұрын
Lưu số có 100k chữ số cũng được em nếu em dùng chuỗi để lưu
@angVanHuy-tf2rv
@angVanHuy-tf2rv 3 жыл бұрын
sau khi xem các video của ô về set , string , map gặp mấy bài này said ez
@28tech_
@28tech_ 3 жыл бұрын
Uh m mới update thêm ít bài tập phần này đấy, chắc khó hơn. B làm thử đi.
@angVanHuy-tf2rv
@angVanHuy-tf2rv 3 жыл бұрын
@@28tech_ bài 20 trong bài tập thêm làm như nào vậy b
@28tech_
@28tech_ 3 жыл бұрын
@@angVanHuy-tf2rv Hình như trong series xâu kí tự mình có giải rồi thì phải. B tìm lại xem.
@28tech_
@28tech_ 3 жыл бұрын
@@angVanHuy-tf2rv kzbin.info/www/bejne/i3nWnH6Kq8qksLs&ab_channel=andrew2804
@james-rx8kw
@james-rx8kw 2 жыл бұрын
anh giải thích về cách hoạt động của stringstream và toán tử >> dùng cho nó được k ạ
@28tech_
@28tech_ 2 жыл бұрын
Em xem video lí thuyết string đi a có giải thích
@khavovan8201
@khavovan8201 3 жыл бұрын
Sao max_element lại dùng con trỏ vậy anh?
@28tech_
@28tech_ 3 жыл бұрын
Cái dấu * trước hàm max_element ko phải là con trỏ mà là toán tử giải tham chiếu, dereference operator, vì hàm max_element trả về iterator tới phần tử lớn nhất chứ nó ko trả về giá trị lớn nhất. Em muốn lấy ra được giá trị lớn nhất phải giải tham chiếu nó.
@khavovan8201
@khavovan8201 3 жыл бұрын
@@28tech_ hỏi khó hiểu á anh, hình như cái này anh chưa nói tỏng mấy video trước
@28tech_
@28tech_ 3 жыл бұрын
@@khavovan8201 uh hàm này mình chưa đề cập, có thể hiểu đơn giản, hàm này trả về địa chỉ của số lớn nhất trong mảng, nếu muốn lấy ra giá trị lớn nhất, cần sử dụng toán tử giải tham chiếu. Nếu e chưa biết gì về con trỏ thì nó hơi khó hiểu, cơ mà cứ sử dụng đã. dần sẽ nắm bắt được.
@khavovan8201
@khavovan8201 3 жыл бұрын
@@28tech_ ok anh
@SonNguyen-jm5we
@SonNguyen-jm5we 2 жыл бұрын
làm sao để làm bài rút gọn xâu v thầy
@28tech_
@28tech_ 2 жыл бұрын
Rút gọn xâu gì bạn?
@Nguyen_Tai-d1g
@Nguyen_Tai-d1g Жыл бұрын
mng cho em hỏi làm cách nào để nhập n số lượng rồi nhập các xâu ạ VD: inp 3 Nguyen van a nguyen van b nguyen van c -em đang cần bước này để làm tiếp các bài tập liên quan
@admin-wd4mm
@admin-wd4mm Жыл бұрын
bn nhập vào một biến r dùng while - - đi biến đó là dc
@Nguyen_Tai-d1g
@Nguyen_Tai-d1g Жыл бұрын
cảm ơn ạ@@admin-wd4mm
@nguyenoanhuuhuy1831
@nguyenoanhuuhuy1831 2 жыл бұрын
Cho e hỏi bài 4 Linh thành LINH làm sao ạ
@28tech_
@28tech_ 2 жыл бұрын
Duyệt qua rồi chuyển về hết in hoa thôi e
@ngoctutranhoang9725
@ngoctutranhoang9725 2 жыл бұрын
anh oi em co cach giai bai tap ve xau ki tu dau cuoi ne,anh coi co on ko: #include using namespace std; int main() { long long n;cin>>n; while(n--){ string g;cin>>g; long long ll=0; for(long long i=0;i
@ngoctutranhoang9725
@ngoctutranhoang9725 2 жыл бұрын
Y tuong cua em la neu g=aabab (vi du)thi no se chay theo kieu tu thang a dau tien toi cac so con lai coi co phu hop va co bnhieu cap sau do toi thang atiep theo roi toi thang b roi cu the cho den het
@ngoctutranhoang9725
@ngoctutranhoang9725 2 жыл бұрын
nhg dac biet la no xuat phat tu chinh vi tri cua thg bd luon
@taiphanvan2403
@taiphanvan2403 3 жыл бұрын
Anh em có thắc mắc như này string s = "12"; for (int i = 1; i > a; cout
@28tech_
@28tech_ 3 жыл бұрын
Sao lại int a nhỉ?
@taiphanvan2403
@taiphanvan2403 3 жыл бұрын
@@28tech_ chuyển chuỗi về số nguyên đấy anh.Em cú nghĩ mỗi vòng lặp nó tạo ra biến a khác chứ?
@ngoctutranhoang9725
@ngoctutranhoang9725 2 жыл бұрын
the thi ban phai string a;truyen a sau do dung stoi roi cout
@attruonggia8433
@attruonggia8433 3 жыл бұрын
Hình như test case đề bài bài số đẹp bị sai hay sao ấy anh
@28tech_
@28tech_ 3 жыл бұрын
Sai gì nhỉ ? A thấy đúng rồi.
@attruonggia8433
@attruonggia8433 3 жыл бұрын
@@28tech_ Dạ em nhìn nhầm anh ơi ahahha em cảm ơn anh ạ
@NgôNam-q5z
@NgôNam-q5z 11 ай бұрын
trường hợp m=2 s=0 thì k phải có 2 số -11 với -99 ạ anh
@28tech_
@28tech_ 11 ай бұрын
Này xét số ko âm thôi em
@NgôNam-q5z
@NgôNam-q5z 11 ай бұрын
@@28tech_ da em cam on
@kuon_coc_can
@kuon_coc_can Жыл бұрын
Cho em xin file đề thầy giải với thầy !!!
@loltv6448
@loltv6448 2 жыл бұрын
Anh ơi em chưa học phần xử lý sâu ký tự | chuỗi của list C , thì có lên học phần này ko ạ, hay là phải học phần chuỗi của C trước ạ
@28tech_
@28tech_ 2 жыл бұрын
Học được em
@loltv6448
@loltv6448 2 жыл бұрын
@@28tech_ okes đúng ý em , tại em muốn học c++ hơn
@loltv6448
@loltv6448 2 жыл бұрын
@@28tech_ em cày xong lý thuyết số r anh ạ, còn mỗi phần modul khó quá, để ngâm cứu sau thui
@langtri3835
@langtri3835 2 жыл бұрын
anh lm về truy vết dc ko anh?
@BDCCN-NguyenucDuy
@BDCCN-NguyenucDuy 3 жыл бұрын
a học PTIT khóa bn đó e cũng PTIT nè. bảo sao xem mấy bài tập của a giống trên code.ptit thế =))))
@28tech_
@28tech_ 3 жыл бұрын
Haha. Đúng rồi.
@12_6__2_3
@12_6__2_3 2 жыл бұрын
bài 13 phải swap dãy cuối nữa chứ a
@ngoctutranhoang9725
@ngoctutranhoang9725 2 жыл бұрын
bai 13 sap dat xau ki tu anh lam thieu truong hop abavaca .trong truong hop nay cac so van khac nhau va tong cac so khac tru di so lan xuat hien cua so lon nhann la a van =-1.trg hop cua anh la sabavac(vi du) thi no dung nhg van thieu nha
@campus1906
@campus1906 3 жыл бұрын
anh hoc ptit dung ko a ?
@28tech_
@28tech_ 3 жыл бұрын
đúng rồi b.
@hvd0706
@hvd0706 2 жыл бұрын
Bài 15 em làm như này có được không ạ void bai15() { int t; cin >> t; cin.ignore(); while(t--) { string s; cin >> s; for(int i = 0; i < s.size(); i++) { if(s[i] >= 'a' && s[i] > word) { sum += stoll(word); } cout
@28tech_
@28tech_ 2 жыл бұрын
Ngon em
@LeVan-nj8yi
@LeVan-nj8yi Жыл бұрын
mình muốn xin code được không ạ
@28tech_
@28tech_ Жыл бұрын
Code thì ko lưu bạn ơi
@ngoctutranhoang9725
@ngoctutranhoang9725 2 жыл бұрын
trong bai cua anh em thay co hai bai cuoi cung la hay nhat doi voi em
@QuanDoTrung198
@QuanDoTrung198 Жыл бұрын
bài 12 dùng lower_bound được mà ta
@BDCPT-TrinhXuanTung
@BDCPT-TrinhXuanTung 3 жыл бұрын
bai 15 sao lai tru di '0' a
@28tech_
@28tech_ 3 жыл бұрын
Gần cuối kì rồi mà vẫn hỏi câu này khả năng kì này trượt c++ cao đấy 😂😂😂😂. Trừ đi kí tự 0 để chuyển từ kí tự số sang số tương ưng với nó. Trừ 2 mã ascii cho nhau
@Alahaha189
@Alahaha189 3 жыл бұрын
Hellu anh
@28tech_
@28tech_ 3 жыл бұрын
giờ mới tới phần này ah :v
@Alahaha189
@Alahaha189 3 жыл бұрын
@@28tech_ em coi nó hơi lộn xộn á anh chứ trên lớp cô dạy chắc gần tới lớp rồi anh :v
@28tech_
@28tech_ 3 жыл бұрын
@@Alahaha189 ok ok
@anhquannguyen9989
@anhquannguyen9989 3 жыл бұрын
Oh ô anh cx học ptit à :v
@28tech_
@28tech_ 3 жыл бұрын
a học trường P
@BDCCN-NguyeninhTrung
@BDCCN-NguyeninhTrung 3 жыл бұрын
Bài của a giống trong bài tập trường ptit vãi
@28tech_
@28tech_ 3 жыл бұрын
Uh, a lấy đấy ra mà. Không biết có sao không :v. Nhưng cũng bổ sung nhiều.
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
How to STUDY so FAST it feels like CHEATING
8:03
The Angry Explainer
Рет қаралды 2,3 МЛН
I Optimised My Game Engine Up To 12000 FPS
11:58
Vercidium
Рет қаралды 738 М.
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН