**Mình sẽ viết đề dễ hiểu hơn xíu**
Cho 2 chữ cái _a_ và _b_ yêu cầu đếm **_các_** chữ cái **_đằng sau_** chữ cái _a_ và **_đằng trước_** chữ cái _b_ bắt buộc các chữ cái đó phải **Khác** _a_ và _b_
- Dữ liệu đảm bảo chữ cái _b_ sẽ luôn nằm sau _a_
**!!!** Các bạn cần lưu ý tránh hiểu nhầm chúng ta sẽ dùng bảng chữ cái **Tiếng Anh** gồm **a b c ... x y z** chứ không phải bảng chữ cái **ASCII** nhưng khi giải vẫn sẽ dùng số thập phân của chữ cái **được quy ước theo ASCII** để tìm **số lượng** chữ cái nằm giữa _a_ và _b_
Bởi vì chữ cái _a_ và chữ cái _b_ theo đề bài cho có thể là chữ **thường** hoặc chữ **hoa** nên chúng ta sẽ cần ép về cùng 1 dạng để dễ tìm đáp án
Sau đó chúng ta sẽ có 2 trường hợp :
+ Không tồn tại chữ cái nào nằm giữa a và b hay ta có thể nói cách khác chữ cái a nằm ngay trước b => cout << 0;
+ Tồn tại ít nhất 1 chữ cái nằm giữa a và b => cout << (int)(b - 1) - (int)(a);
- Nếu đã đọc đến đây thì mình nghĩ các bạn có thể AC bài này rồi nếu chưa hãy đọc kĩ lại đề cũng như hint của mình để có thể giải quyết bài toán chứ mình thật sự mong các bạn khoan đọc code vội mà hãy cố gắng suy nghĩ để có thể cải thiện tư duy cũng như cách giải quyết vấn đề
- 🍀Good luck🍀
|
|
|
|
|
|
|
|
|
|
|
- Nếu bạn thật sự đã kéo xuống đây thì mình nghĩ bạn đã khá khó khăn khi giải bài này nên đây sẽ là code bạn có thể đọc rồi suy nghĩ và code lại **Xin đừng copy vì mình nghĩ đó là 1 điều không hay lắm** :
```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); // Đây chỉ là 1 dòng code giúp tăng tốc độ chạy của code nên các bạn có thể bỏ qua cái này
char a, b; cin >> a >> b;
// Chúng ta sẽ cần ép a và b về cùng 1 dạng chữ cái tránh trường hợp tính toán sai lệch các bạn có thể đưa về chữ cái thường hoặc chữ cái hoa
// Nhưng ở đây mình sẽ đưa về dạng thường
if('A' <= a && a <= 'Z') a = char(int(a) + 32);
if('A' <= b && b <= 'Z') b = char(int(b) + 32);
// Các bạn có thể lên google tra ASCII để có thể hiểu 2 dòng trên đơn giản là mình kiểm tra nếu a là chữ cái Hoa thì mình cộng hệ thập phân của nó + 32 thì sẽ đưa a thành dạng chữ cái thường của nó và b tương tự
if((int(b - 1)) == (int)a){ // Nếu chữ cái a ngay đằng trước chữ cái b hay cả 2 chữ cái a và b nằm kề vai thì mình sẽ cout ra 0 vì không có chữ cái nào nằm giữa a và b
cout << 0;
}else{// Nếu tồn tại ít nhất 1 chữ cái giữa a và b thì ta sẽ cout đáp án theo yêu cầu đề bài
cout << (int)(b - 1) - (int)(a);
}
return 0;
}
```