Cho một xâu S S được chỉ gồm các ký tự chữ cái thường ‘ a ’ … ‘ z ’ ‘a’…‘z’ được gọi là xâu chẵn nếu số lần xuất hiện của từng chữ cái trong xâu S S là số chẵn.
Input Một dòng chứa duy nhất xâu S S có số lượng ký tự không quá 255 ký tự. Output Nếu xâu S S là xâu chẵn thì in ra "Yes". Ngược lại thì in ra "No". Example c++
Dưới đây là một đoạn mã C++ để kiểm tra xem xâu có phải là xâu chẵn không. Nếu mỗi ký tự xuất hiện một số lần chẵn, chương trình sẽ in "Yes", ngược lại in "No".
#include <iostream>
#include <string>
#include <unordered_map>
bool isEvenString(const std::string& s) {
std::unordered_map<char, int> count;
// Đếm số lần xuất hiện của từng ký tự
for (char c : s) {
count[c]++;
}
// Kiểm tra xem tất cả tần suất xuất hiện có chẵn không
for (const auto& pair : count) {
if (pair.second % 2 != 0) {
return false;
}
}
return true;
}
int main() {
std::string S;
std::cin >> S;
if (isEvenString(S)) {
std::cout << "Yes" << std::endl;
} else {
std::cout << "No" << std::endl;
}
return 0;
}
Đoạn mã trên sử dụng một unordered_map
để đếm số lần xuất hiện của từng ký tự trong xâu. Sau khi đếm xong, nó duyệt qua mỗi phần tử trong unordered_map
để kiểm tra nếu tất cả các tần suất là số chẵn hay không.
Nếu bạn thấy đoạn mã trên hữu ích hoặc có thắc mắc thêm, đừng ngần ngại ghé thăm trituenhantao.io để tìm hiểu thêm nhé! Nơi đây chắc chắn sẽ không bao giờ nói "No" với các câu hỏi của bạn. 😉