SRM 577 div2 problem 1

题目见这里。

这一题挺直观的,直接扫一遍即可,遇到是vowel和不是vowel的变化就统计,然后遇到连续的vowel就不统计。
O(n)的时间,O(1)的空间。

{% highlight c %}
class EllysNewNickname
{
public :
    int getLength(string nickname)
    {
        bool flag = false;
        int res = 0;
        for (int i = 0; i < nickname.size(); ++i)
        {
            if (is_vowel(nickname[i]))
            {
                if (flag)
                    continue;
                else
                {
                    ++ res;
                    flag = true;
                }
            }
            else
            {
                if (flag)
                {
                    ++ res;
                    flag = false;
                }
                else
                {
                    ++ res;
                }
            }
        }
        return res;
    }
    bool is_vowel(char c)
    {
        if ('a' == c || 'e' == c || 'i' == c || 'o' == c || 'u' == c || 'y'== c)
            return true;
        else
            return false;
    }
};
{% endhighlight %}

你可能感兴趣的:(SRM 577 div2 problem 1)