首页 > 试题广场 >

牛牛的AC

[编程题]牛牛的AC
  • 热度指数:1740 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一年一度的春招就要到来了,牛牛为了备战春招,在家刷了很多道题,所以牛牛非常喜欢AC这两个字母。他现在有一个只包含A和C的字符串,你可以任意修改最多k个字符,让A变成C,或者C变成A。请问修改完之后,最长连续相同字符的长度是多少。

示例1

输入

1,"AAAC"

输出

4

说明

样例一:将最后一位C改成A即可。

备注:
字符串长度<=10^6,且只包含'A'和'C',k<=10^6。
运行效率太低了,超大字符串测试时内存和效率不通过。结果都正常。不知道怎么解了。
public int Solve (int k, String s) {
        // write code here
        String maxStr = "";
        for (int i = 0;i<s.length();i++) {
            for (int j=s.length();j>i;j--) {
                String sub = s.substring(i,j);
                if (j-i <maxStr.length()) {
                    continue;
                }
                if (sub.replaceAll("A","").length()<=k || sub.replaceAll("C","").length()<=k) {
                    if (maxStr.length() < sub.length()){
                        maxStr = sub;
                    }
                }
            }
        }
        return maxStr.length();
    }
发表于 2021-07-28 22:42:30 回复(0)