이 방법은 자음 문자열을 알파벳에서 가장 가까운 모음(라틴어 소문자라고도 함)으로 바꾸는 것을 목표로 합니다. 두 모음이 똑같이 가까운 경우 해당 문자의 첫 번째 모음으로 바꿀 수 있습니다.
몇 가지 입력 시나리오를 살펴보겠습니다. -
"ebgkjasjd"와 같은 문자열이 있다고 가정해 보겠습니다. 이제 문자열에서 나타나는 모든 자음을 가장 가까운 모음으로 바꿔야 합니다.
으아아아'b' 요소는 가장 가까운 모음이므로 'a'로 대체하세요. 요소 'g'를 'e'나 'i'로 바꿀 수도 있었는데 둘 다 똑같이 최신 항목이었기 때문입니다. 하지만 먼저 나온 것이므로 'e'로 바꾸는 것을 선택합니다. 문자열의 다른 모든 요소에도 동일하게 적용됩니다.
입력 문자열에 모음이 포함되어 있지 않다고 가정합니다. 예를 들어 문자열 "sdfhgtykl"을 고려하면 결과 출력은 -
입니다. 으아아아첫 번째 요소 's'는 모음 'u'가 가장 가깝기 때문에 's'를 'u'로 바꾸세요. 배열의 다른 모든 요소와 마찬가지로 자음입니다. 이 상황은 또한 방법의 최악의 복잡성을 초래합니다.
시작 인덱스부터 시작하여 입력 문자열을 탐색합니다.
자음이 나오면 해당 자음부터 왼쪽과 오른쪽에 가장 가까운 두 개의 모음까지의 문자 수를 계산합니다. 글자수가 적은 모음을 선택하세요.
이 과정은 문자열의 모든 자음을 탐색할 때까지 반복됩니다.
얻어진 출력은 대체된 문자열입니다.
다음은 문자열의 모든 자음을 알파벳에서 가장 가까운 모음으로 바꾸는 C++로 구현된 코드입니다. -
으아아아그러나 더 나은 접근 방식은 if-else 조건을 많이 사용하는 대신 배열을 사용하고 각 문자에 대해 가장 가까운 문자 응답을 저장하는 것입니다.
으아아아요소를 찾아 가장 가까운 문자로 바꾸는 방식으로 요소를 바꿀 수 있습니다. 문자열을 순회하는 시간 복잡도는 O(n)입니다. 두 번째 방법은 이해하기 쉽고 코딩하기 쉽고 덜 번거롭습니다. 문자열을 한 번만 반복하므로 시간 복잡도도 O(n)입니다.
위 내용은 C++ 프로그램을 사용하여 문자열의 모든 자음을 가장 가까운 모음으로 바꿉니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!