用 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP