Cho một chuỗi và khoảng giá trị ASCII [l, r], nhiệm vụ là đếm và in ra các ký tự trong chuỗi có mã ASCII nằm trong khoảng này.
Bảng mã ASCII tham khảo
A-Z: 65-90 | a-z: 97-122
Ví dụ
Input - str = "point", First = 111, Last = 117 Output - characters in range: p, o, t, Count: 3
Giải thích - 'p'(112), 'o'(111), 't'(116) nằm trong [111, 117].
Input - str = "ABCZXY", First = 65, Last = 70 Output - characters in range: A, B, C, Count: 3
Phương pháp tiếp cận
- Duyệt qua từng ký tự trong chuỗi
- Kiểm tra mã ASCII (int)str[i] có nằm trong [left, right] không
- In ký tự và tăng biến đếm nếu thỏa mãn
- Trả về tổng count
Ví dụ code C++
#include <iostream>
#include <string>
using namespace std;
int count_char(string str, int left, int right) {
int count = 0;
int len = str.length();
for (int i = 0; i < len; i++) {
if (left <= str[i] && str[i] <= right) {
count++;
cout << str[i] << " ";
}
}
return count;
}
int main() {
string str = "tutorialspoint";
int left = 102, right = 111;
cout << "Characters in range: ";
cout << "\nCount: " << count_char(str, left, right);
return 0;
}
Kết quả
Characters in range: o i l o i n Count: 6