Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
.
Bài 2: Dãy bit
.
.
.
Bình luận
có ai cho tui xin thuật toán bài này được không
ok nếu như bạn chưa ac thì cách làm của bài này là mình sẽ gọi last_len là độ dài của xâu liên tiếp trước ( cả 0 và 1 đều được) cur_len là độ dài xâu liên tiếp tính tới hiện tại. với mỗi \(i\) thuộc \(0<=i<s.size\) thì kiểm tra nếu \(s[i]==s[i - 1]\)(s[i] có thuộc xâu liên tiếp hiện tại hay không), nếu có thì tăng cur_len nếu không thì ta sẽ đặt last_len = cur_len và cur_len = 1 (s[i] sẽ là phần tử đầu của xâu liên tiếp mới), cuối mỗi lần kiểm tra thì ta lấy res = max(res, min(cur_len, last_len) * 2). Dưới đây là code của mình (C++):
Có rồi nhìn trông đơn giản nhưng lúc chưa có suy nghĩ vắt não ý