Editorial for Chênh lệch độ dài
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
\(\color{red}{\text{Spoiler Alert}_{{}_{{}^{{}^{v2.0}}}}}\)
\(\color{red}{\text{Khuyến khích bạn đọc trước khi đọc phần lời giải xin hãy thử code ra thuật của mình dù nó có sai hay đúng}}\)
\(\color{red}{\text{Sau đó từ phần bài giải và thuật toán trước đó mà đối chiếu, rút nhận xét với thuật của mình và thu được bài học (không lãng phí thời gian đâu).}}\)
\(\color{orange}{\text{Hint 1}}\)
- Nhận vào 2 hàng xâu \(s, t\) ta sẽ tính giá trị \(abs(|s| - |t|)\) với hàm \(abs(x)\) là giá trị tuyệt đối của \(x\)
Trong ngôn ngữ \(C++\) ta có thể sài lệnh \(getline(cin, s);\) (các ngôn ngữ khác mình cập nhật sau)
\(\color{orange}{\text{Hint 2 <Online-Solving>}}\)
- Chúng ta có thể không cần nhận cả xâu mà chỉ nhận từng phẩn tử cho tới khi nhận được kí tự xuống hàng
Duyệt hai xâu và đếm số lượng kí tự mỗi xâu bằng cách trên
Gọi hai giá trị này là \(cnt_s\) và \(cnt_t\) ta có kết qủa cần tìm là \(res = abs(cnt_s - cnt_t)\)
- Và chúng ta cũng có thể dùng một biến đếm
Khi duyệt qua xâu đầu ta tăng biến đếm cho mỗi kí tự
Khi duyệt qua xâu đầu ta giảm biến đếm cho mỗi kí tự
Gọi giá trị nhận được là \(d\) (different) thì kết quả cần tìm là \(res = abs(d)\)
\(\color{green}{\text{Preference AC Code }}\): Online Solving
\(^{^{\color{purple}{\text{Complexity : }} O(|s| + |t|)\ \color{purple}{\text{time}}\ ||\ O(1)\ \color{purple}{\text{memory}}}}\)
C++
int main()
{
int d = 0;
for (char c; (c = getchar()) != '\n'; d++);
for (char c; (c = getchar()) != '\n'; d--);
cout << abs(d);
return 0;
}
Comments