Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

이중 모음 제거 후 수정된 텍스트를 찾는 C++ 코드

<시간/>

n개의 문자가 있는 문자열 S가 있다고 가정합니다. 텍스트 편집기에는 이상한 규칙이 있습니다. 이 텍스트 편집기의 단어 교정기는 단어에 두 개의 연속적인 모음이 있는 한 단어의 첫 번째 모음을 삭제하는 방식으로 작동합니다. 단어에 연속된 두 개의 모음이 없으면 올바른 것으로 간주됩니다. S에서 수정된 단어를 찾아야 합니다. 여기서 모음은 'a', 'e', ​​'i' 'o', 'u' 및 'y'입니다.

따라서 입력이 S ="poor"와 같으면 출력은 "por"이 됩니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

n := size of S
t := "aeiouy"
for initialize i := 1, when i < n, update (increase i by 1), do:
   if S[i] is in t and S[i - 1] is in t, then:
      delete ith character from S
      (decrease i by 1)
return S

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;
string solve(string S){
   int n = S.size();
   string t = "aeiouy";
   for (int i = 1; i < n; i++){
      if (t.find(S[i]) != -1 && t.find(S[i - 1]) != -1){
         S.erase(i, 1);
         i--;
      }
   }
   return S;
}
int main(){
   string S = "poor";
   cout << solve(S) << endl;
}

입력

"poor"

출력

por