红绿蓝排序

 有一个罐子,里面装着红的、绿的、蓝的玻璃珠若干,分别用R、G、B表示。希望把它们排成一行,并且按照字典序排列(即B ->G -> R的顺序) .然后以一红二绿三蓝为一组串成一-串幸运珠,多余的放回罐子里,那么他能串成多少串幸运珠呢?
输入格式
输入为一行,是一个由若干个R、G、B乱序组
成的字符串,长度小于10000,每个字母至少出现一次。
输出格式
●输出共2行;
●第1行是排序完成后的字符串; .
●第2行是一个整数,为串成的幸运珠的数目。
样例输入
RGGBBB
样例输出
BBBGGR
1

思路:对字符串进行升序排序,然后分别记录R G B 的个数,寻找最小的限制量进行输出

提示:<algorithm>头文件里面包含min函数,可以直接使用

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
char s[10005];
int main()
{
int len,r,g,b;
cin>>s;
len=strlen(s);
sort(s,s+len);
cout<<s<<endl;
r=0;
g=0;
b=0;
for(int i=0;i<len;i++)
{
    if(s[i]=='R')
    {
     r++;
    }else if(s[i]=='G')
    {
        g++;
    }else {
    b++;}
}
cout<<min(r,min(g/2,b/3));//一个min函数只能放进两个参数
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱康代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值