牛牛特别喜欢c这个字母,如果一个字符串中c这个字符的数量超过了整个字符串长度的一半,那么牛牛对这个字符串是十分满意的。
只不过,如果这个字符串不能使牛牛感到满意,那么他可以删去这个字符串中的某些字母,使得剩下的字符串让他感到满意。
那么,在牛牛可以执行删除某些字母情况下,让牛牛感到满意的字符串的长度最长是多少呢?
给定一个字符串s,返回让牛牛感到满意的字符串的最大的长度,题目保证字符串中含有c。

题解:因为牛牛可以执行删除某些字母的操作,所以我们只需要统计字符串中c字符的数量,如果在原串中c的数量已经满足,那么只需要返回原串的长度即可;否则我们计算一下删除后满足的字符串最大的数量,公式为2 * |c| - 1。

时间复杂度:图片说明
空间复杂度:图片说明
参考代码:

class Solution {
public:
    /**
     * 给定一个字符串s,返回让牛牛感到满意的字符串的最大的长度。
     * @param s string字符串 代表题目中描述的s
     * @return int整型
     */
    int solve(string s)
    {
        // write code here
        int ans = 0;
        int len = s.size();
        for (int i = 0; i < len; i++)
        {
            if (s[i] == 'c')
                ans++;
        }
        return min(len, 2 * ans - 1);
    }
};