HDU1039(字符串水题)

题目简述:

判断字符串是否同时满足:

1:有元音字母

2:不能三个连续元音或辅音

3.不能连续两个相同的字母,除非ee或oo

end终止输入

AC代码:

#include<iostream>
#include<string>
using namespace std;
int yuan(char c)
{
    if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
        return 1;
    return 0;
}

int main()
{
    string s;
    while (cin >> s)
    {
        if (s == "end")break;
        int conform = 0;
        for (int i = 0; i < s.size(); i++) //是否有元音
        {
            if (yuan(s[i]))
            {
                conform = 1;
                break;
            }
        }

        if (conform)
        {
            for (int i = 2; i<s.size(); i++)   //不能连续三个元音或辅音
            {
                if (yuan(s[i]) && yuan(s[i - 1]) && yuan(s[i - 2]))
                    conform = 0;
                else if (!yuan(s[i]) && !yuan(s[i - 1]) && !yuan(s[i - 2]))
                    conform = 0;
            }
        }
        if (conform)                 //不能连续两个相同的字母,除非ee或oo
        {
            for (int i = 0; i < s.size()-1; i++)
            {
                if (s[i] == s[i + 1])
                {
                    if (s[i] != 'e' && s[i] != 'o')
                    {
                        conform = 0;
                        break;
                    }
                
                }
            }
        }
        
        if (conform)
            cout <<'<' << s << "> is acceptable.\n";
        else cout << '<' << s << "> is not acceptable.\n";
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weirdo_coder/article/details/87089814