求最大篮球的单词数

56 阅读1分钟

给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "basketball"(篮球)。 字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "basketball"。 示例 1: 输入:text = "saltaebbolko" 输出:1 示例 2: 输入:text = "saltaebbolkoxballketsba" 输出:2 示例 3: 输入:text = "english" 输出:0   提示: 1 <= text.length <= 10^4 text 全部由小写英文字母组成

//给你一个字符串 text,你需要使用 text 中的字母
//来拼凑尽可能多的单词 "basketball"(篮球)。
//字符串 text 中的每个字母最多只能被使用一次。
//请你返回最多可以拼凑出多少个单词 "basketball"。
//a->2 b->2 e->1 k->1 l->2 s->1 t->1

    Console.WriteLine("请输入字符串test:");
    string test = Console.ReadLine();
    char[] str = test.ToCharArray();
    int[] letters = { 0, 0, 0, 0, 0, 0, 0 };
    for (int i = 0; i < str.Length; i++)
    {
        switch (str[i])
        {
            case 'a':
                letters[0]++;
                break;
            case 'b':
                letters[1]++;
                break;
            case 'e':
                letters[2]++;
                break;
            case 'k':
                letters[3]++;
                break;
            case 'l':
                letters[4]++;
                break;
            case 's':
                letters[5]++;
                break;
            case 't':
                letters[6]++;
                break;
            default:
                break;
        }
    }
    //a->2 b->2 e->1 k->1 l->2 s->1 t->1
    letters[0] = letters[0] / 2;
    letters[1] = letters[1] / 2;
    letters[4] = letters[4] / 2;
    int min = letters[0];
    for (int i = 0; i < letters.Length; i++)
    {
        if (min > letters[i])
        {
            min = letters[i];
        }
    }
    Console.WriteLine("可以凑{0}个basketball", min);
}