오늘 기사에서는 C++의 문자열 연산과 관련된 고유한 문제를 살펴보겠습니다. 이 질문은 "주어진 문자열에서 알파벳 표현이 숫자로 뒤섞여 있습니다."입니다. 이 질문은 C++의 문자열 조작 및 데이터 구조 기술을 향상시키는 데 좋은 연습이 될 수 있습니다.
문자열이 주어지면 문자 표현이 뒤섞인 숫자를 식별하는 작업입니다. 예를 들어, 입력 문자열이 "oentow"인 경우 숫자 2(t, w, o)와 숫자 1(o, n, e)이 뒤섞인 알파벳 표현을 갖습니다.
이 문제를 해결하기 위해 C++에서 해시 테이블이나 순서가 지정되지 않은 맵을 사용하여 문자의 빈도를 문자열에 저장합니다. 그런 다음 이 빈도 맵을 각 숫자의 알파벳 표시에 대한 사전 정의된 맵과 비교할 것입니다. 입력 문자열에서 숫자 표현을 구성할 수 있으면 해당 숫자를 출력합니다.
이 문제를 해결하기 위한 C++ 코드입니다 −
으아아아문자열 "oentow"를 고려해 보겠습니다.
이 문자열이 findJumbledDigits 함수에 전달되면 먼저 문자열에 대한 빈도 맵을 생성합니다: {'o': 2, 'e': 1, 'n': 1, 't': 1, 'w': 1}.
그런 다음 0부터 9까지의 각 숫자에 대해 숫자를 알파벳순으로 표현한 주파수 맵을 생성하고 이 맵이 문자열의 주파수 맵에서 형성될 수 있는지 확인합니다.
숫자 1의 표현 "1"은 빈도 매핑 {'o': 1, 'n': 1, 'e': 1}을 가지며, 숫자 2의 표현 "two"는 빈도 매핑 {' t': 1 , 'w': 1, 'o': 1}.
이 두 가지는 문자열의 빈도 맵으로 생성될 수 있으므로 이 숫자를 결과에 추가합니다.
마지막으로 "문자열에서 뒤죽박죽된 숫자는 1 2"라는 결과를 출력합니다.
이 질문은 주파수 매핑을 사용하여 C++의 복잡한 문자열 조작 문제를 해결하는 방법을 보여줍니다. 이는 문자열 및 데이터 구조 처리 기술을 연습하기 위한 좋은 질문입니다. C++ 코딩 기술을 향상하려면 이와 같은 질문을 계속 연습하세요.
위 내용은 문자가 뒤섞인 숫자를 나타내는 문자열이 주어지면의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!