用 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
广告