气球问题探究"/>
气球问题探究
题目
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 “balloon”。
关于c
气球问题的实现
找每个目标字符串每个字母在给出的串中的个数,把目标字符串每个字母的数量除以目标该字母的数量,最后最小数就是气球数
代码
#define min(a , b) ((a) < (b) ? (a) : (b))int maxnumberofballoons( char * text)
{int cnt[5];int n = strlen (text);memset(cnt , 0 , sizeof(int)*5);for (int i = 0 ; i < n ; i++ ){if (text[ i ] == 'b' )cnt[ 0 ]++;else if (text[ i ] == 'a' )cnt[ 1 ]++;else if (text[ i ] == 'l' )cnt[ 2 ]++;else if (text[ i ] == 'o' )cnt[ 3 ]++;else if (text[ i ] == 'n' )cnt[ 4 ]++;}cnt[ 2 ] /= 2;cnt[ 3 ] /=2;int res = int_max;for (int i = 0 ; i < 5 ;i++)res=min( res, cnt[ i ] );return res;
}
重点代码
求串的长度
strlen(text)
C++中常量INT_MAX和INT_MIN分别表示最大、最小整数,定义在头文件limits.h中。
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)int res = int_max;
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
memset(cnt , 0 , sizeof(int)*5);
更多推荐
气球问题探究
发布评论