admin 管理员组文章数量: 1087649
气球的最大数量
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
这题其实很简单,我们只需要统计a,b,l,o,n的个数就行,然后将l和o的个数除以二,然后比较它们中最小的是多少,因为木桶效应,组成气球不是看最多的字母,而是看最少的字母,所以我们先创建一个容量为5的数组arr,里面分别放置a,b,l,o,n的个数,其中和o的个数除以二,然后我们开始字符串,每次遇到这五个字母,就将它们的次数加1。遍历完后,我们在遍历arr,记录数组的最小值,(其实我们可以遍历到0就直接返回0的,但是因为数组小,所以我们可以直接忽略它)然后返回它,它就是最多的气球。下面是代码,我们做题时应该很少用到switch吧,现在我们就可以借着这个机会,来运用它。
int maxNumberOfBalloons(char* text) {
int arr[5] = { 0 };
while (*text)
{
switch (*text)
{
case 'a':
arr[0]++;
break;
case 'b':
arr[1]++;
break;
case 'l':
arr[2]++;
break;
case 'o':
arr[3]++;
break;
case 'n':
arr[4]++;
break;
default:
break;
}
text++;
}
arr[2] /= 2;
arr[3] /= 2;
int i = 0;
int min = arr[0];
for (i = 0; i < 5; i++)
}
if (min > arr[i])
min = arr[i];
}
return min;
}
本文标签: 气球的最大数量
版权声明:本文标题:气球的最大数量 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1687331050a90381.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论