이 기사에서는 C++의 문자열 연산과 관련된 흥미로운 문제를 살펴보겠습니다. 문제 설명은 "한 문자열의 문자가 다른 문자열에 나타나는 빈도의 합"입니다. 이 질문은 C++의 문자열 조작, 문자 빈도 계산 및 매핑 개념에 대한 이해를 높일 수 있는 좋은 기회를 제공합니다.
두 개의 문자열이 주어졌을 때, 작업은 두 번째 문자열의 첫 번째 문자열에서 문자 발생 빈도의 합을 구하는 것입니다.
이 문제를 해결하기 위해 먼저 해시 맵을 사용하여 두 문자열에 대한 빈도 맵을 만듭니다. 빈도 도표는 문자열의 각 문자를 문자열의 해당 문자 수에 매핑한 것입니다. 이를 위해 STL unordered_map을 사용합니다. 빈도 도표를 작성한 후 첫 번째 문자열의 빈도 도표를 반복하고 두 번째 문자열에도 존재하는 각 문자에 대해 해당 빈도를 합계에 추가합니다.
이 솔루션을 구현하는 C++ 코드는 다음과 같습니다. -
으아아아문자열 "hello"와 "world"를 고려해 보겠습니다.
이 문자열을 sumOfFrequency 함수에 전달하면 먼저 두 문자열에 대한 빈도 맵이 생성됩니다. "hello"의 경우 빈도 매핑은 {'h':1, 'e':1, 'l':2, 'o':1}이고 "world"의 경우 빈도 매핑은 {'w': 1, ' o':1, 'r':1, 'l':1, 'd':1}.
그런 다음 함수는 "hello"의 빈도 맵을 반복하고 "world"에도 나타나는 각 문자에 대해 해당 빈도를 합계에 추가합니다. 공통 문자는 'o'와 'l'이며, "hello"의 빈도는 각각 1과 2입니다. 따라서 빈도의 합은 3이다.
따라서 이 프로그램의 출력은 "주파수 합은 3입니다."입니다.
이 질문은 C++의 주파수 매핑 개념을 이해하고 실습할 수 있는 좋은 기회를 제공합니다. 이는 C++ 코딩 기술을 향상시키고 문자열 및 맵을 사용하여 문제를 해결하는 방법을 이해하는 데 유용한 질문입니다.
위 내용은 한 문자열의 다른 문자열에 있는 문자 빈도의 합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!