Chúng tôi được cung cấp với một chuỗi có độ dài bất kỳ và nhiệm vụ là tính số lượng và in các bảng chữ cái trong một chuỗi có giá trị ASCII không thuộc phạm vi [l, r]
Giá trị ASCII cho ký tự A-Z được đưa ra bên dưới
A | B | C | D | E | F | G | H | Tôi | J | K | L | M | N | O | P | Hỏi | R | S |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |
T | Ư | V | W | X | Y | Z |
---|---|---|---|---|---|---|
84 | 85 | 86 | 87 | 88 | 89 | 90 |
Giá trị ASCII cho các ký tự a-z được đưa ra bên dưới
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
9 7 | 9 số 8 | 9 9 | 10 0 | 10 1 | 10 2 | 10 3 | 10 4 | 10 5 | 10 6 | 10 7 | 10 số 8 | 10 9 | 11 0 | 11 1 | 11 2 | 11 3 | 11 4 | 11 5 |
t | u | v | w | x | y | z |
---|---|---|---|---|---|---|
116 | 117 | 118 | 119 | 120 | 121 | 122 |
Ví dụ
Input − String str = “point First = 111, Last = 117 Output − characters not in the given range are: i, n Count is: 2
Giải thích - vì i và n không nằm trong phạm vi [111, 117] nên các ký tự này sẽ được tính.
Input − String str = “ABCZXY First = 65, Last = 70 Output − characters in the given range are: A, B, C Count is: 3
Giải thích - vì Z, X và Y không nằm trong phạm vi [65, 70] nên các ký tự này sẽ được tính.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Nhập chuỗi, giá trị bắt đầu và giá trị kết thúc để tạo phạm vi và lưu trữ nó trong các biến, giả sử là str.
-
Tính độ dài của chuỗi bằng cách sử dụng hàm length () sẽ trả về một giá trị nguyên theo số chữ cái trong chuỗi bao gồm cả khoảng trắng.
-
Lấy một biến tạm thời sẽ lưu trữ số lượng ký tự và tạo một bản đồ, giả sử là mp
-
Bắt đầu vòng lặp từ i đến 0 cho đến khi tôi nhỏ hơn độ dài của chuỗi
-
Bên trong vòng lặp, hãy kiểm tra xem bắt đầu có nhỏ hơn không bằng str [i] và str [i] nhỏ hơn không bằng kết thúc hay không
-
Bên trong if, hãy kiểm tra xem mp [str [i]]! =1 sau đó in str [i] else tăng mp [str [i]] lên 1
-
Trả lại số lượng
-
In kết quả
Ví dụ
#include <iostream> #include <unordered_map> using namespace std; // To count the number of characters whose // ascii value not in range [l, r] int count_non_char(string str, int left, int right){ int count = 0; // using map to print a character only once unordered_map<char, int> m; int len = str.length(); for (int i = 0; i < len; i++) { if (!(left <= str[i] and str[i] <= right)){ count++; if (m[str[i]] != 1){ cout << str[i] << " "; m[str[i]]++; } } } // return the count return count; } // main code int main(){ string str = "tutorialspoint"; int left = 102, right = 111; cout << "Characters and "; cout << "\nand count in the given range is: " << count_non_char(str, left, right); return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Characters and and count in the given range is: t u r a s p 8