用 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

更新日期: 2022 年 3 月 29 日

141 次查看

开启你的职业生涯

完成课程,获得认证

开始
广告