>백엔드 개발 >C++ >문자가 뒤섞인 숫자를 나타내는 문자열이 주어지면

문자가 뒤섞인 숫자를 나타내는 문자열이 주어지면

WBOY
WBOY앞으로
2023-09-11 20:37:02822검색

문자가 뒤섞인 숫자를 나타내는 문자열이 주어지면

오늘 기사에서는 C++의 문자열 연산과 관련된 고유한 문제를 살펴보겠습니다. 이 질문은 "주어진 문자열에서 알파벳 표현이 숫자로 뒤섞여 있습니다."입니다. 이 질문은 C++의 문자열 조작 및 데이터 구조 기술을 향상시키는 데 좋은 연습이 될 수 있습니다.

문제 설명

문자열이 주어지면 문자 표현이 뒤섞인 숫자를 식별하는 작업입니다. 예를 들어, 입력 문자열이 "oentow"인 경우 숫자 2(t, w, o)와 숫자 1(o, n, e)이 뒤섞인 알파벳 표현을 갖습니다.

C++ 해결 방법

이 문제를 해결하기 위해 C++에서 해시 테이블이나 순서가 지정되지 않은 맵을 사용하여 문자의 빈도를 문자열에 저장합니다. 그런 다음 이 빈도 맵을 각 숫자의 알파벳 표시에 대한 사전 정의된 맵과 비교할 것입니다. 입력 문자열에서 숫자 표현을 구성할 수 있으면 해당 숫자를 출력합니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

이 문제를 해결하기 위한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제