Google Kickstart回合G错误答案

时间:2020-10-18 14:45:05

标签: c# console-application

我已经解决了该语句,并且测试用例成功,但是仍然提交了 WRONG ANSWER 。请检查并告诉我我错了。

问题陈述-

Ksenia非常喜欢读书,因此每天她都会从她最喜欢的书中读一段片段开始,然后再开始其余的例行工作。片段只是文本的子字符串。 Ksenia有点迷信,她认为,如果阅读的片段以字符串KICK开头,然后以0个或更多字符继续,最后以字符串START结尾,即使整个片段意义不大,她的一天也会很幸运。 / p>

鉴于书中的文字,计算出Ksenia在书变老之前需要阅读的其他幸运片段的数量,她需要再购买一本。即使两个片段在文本中的不同位置处开始或结束,即使它们读取的内容相同,它们也被认为是不同的。另外请注意,不同的幸运片段可能会重叠。

输入 输入的第一行给出了测试用例T的数量。后面的T行,每行包含一个仅包含大写英文字母的字符串S。

输出 对于每个测试用例,输出一行包含Case #x:y的行,其中x是测试用例的编号(从1开始),y是此测试用例的文本中不同的幸运片段的数量。

限制 内存限制:1 GB。 1≤T≤100。 S仅包含大写英文字母。

测试集1 时间限制:20秒。 1≤| S | ≤1000。

测试集2 时间限制:40秒。 1≤| S | ≤105。

样品

输入

3

AKICKSTARTPROBLEMNAMEDKICKSTART

STARTLUCKYKICK

KICKXKICKXSTARTXKICKXSTART

输出

案例1:3

案例2:0

案例3:5

在第一个测试用例中,有三个幸运的片段,分别是KICKSTARTPROBLEMNAMEDKICKSTART和两次KICKSTART。第二个测试用例中的文本根本没有任何幸运的片段。

我的解决方案-

using System;
using System.Linq;

namespace Google_KS_Round_G_2020
{
   class Program
   {
      static void Main(string[] args)
      {
        int t = Convert.ToInt32(Console.ReadLine());
        for (int testCase = 1; testCase <= t; testCase++)
        {
            var conditionInput = RemoveWhitespace(Console.ReadLine());

            int matchCount = Find(conditionInput);

            Console.WriteLine($"Case #{testCase}: {matchCount}");
        }
    }

    public static int Find(string input)
    {
        string K = "KICK";
        int count = 0;
        int index = input.IndexOf(K);
        if (index > -1)
        {
            string a = input.Substring(index + K.Length);
            count = checkCount(a);
            count += Find(a);
        }

        return count;
    }

    public static int checkCount(string input)
    {
        string S = "START";
        int count = 0;
        int index = input.IndexOf(S);
        if (index > -1)
        {
            count += 1;
            count += checkCount(input.Substring(index + S.Length));
        }
        return count;

    }

    public static string RemoveWhitespace(string input)
    {
        return new string(input.ToCharArray()
            .Where(c => !Char.IsWhiteSpace(c))
            .ToArray());
    }
 }
}

0 个答案:

没有答案