首页 > 试题广场 >

数颜色

[编程题]数颜色
  • 热度指数:1647 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个只包含 ``\texttt{R}``、``\texttt{G}``、``\texttt{B}`` 的字符串 S(代表一条彩虹的颜色序列),统计并``\text{(R,G,B)}`` 形式输出三种字母各出现多少次。

输入描述:
\hspace{15pt}一行输入字符串 S\ (1\leqq|S|\leqq10^5),仅含大写字母 ``\texttt{R}``、``\texttt{G}``、``\texttt{B}`` 


输出描述:
\hspace{15pt}按 ``\text{(R,G,B)}`` 形式输出计数结果,分别表示三种字符 ``\texttt{R}``、``\texttt{G}``、``\texttt{B}`` 各自的出现次数。
示例1

输入

RRGBBRG

输出

(3,2,2)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String rainbow = in.nextLine();

        int countR = 0;
        int countG = 0;
        int countB = 0;
        for (char c : rainbow.toCharArray()) {
            if (c == 'R') countR++;
            else if (c == 'G') countG++;
            else if (c == 'B') countB++;
        }
        System.out.print("(" + countR + ',' + countG + ',' + countB + ")");
    }
}

发表于 2025-08-28 16:34:34 回复(0)
#include <iostream>
//#include <vector>
#include <string>
using namespace std;

int main() {
    string strings;
    getline(cin,strings);
    int R=0;
    int G=0;
    int B=0;
    for(int i=0;i<strings.size();i++){
        if(strings[i]=='R'){
            R++;
        }
        else if(strings[i]=='G'){
            G++;
        }else{
            B++;
        }
    }
    cout<<"("<<R<<","<<G<<","<<B<<")";
}

发表于 2025-10-27 21:35:25 回复(0)
#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    getline(cin,s);
    int cnt1=0,cnt2=0,cnt3=0,len=s.size();
    for(int i=0;i<=len-1;i++){
        if(s[i]=='R'){
            cnt1++;
        }
        else if(s[i]=='G'){
            cnt2++;
        }
        else{
            cnt3++;
        }
    }
    cout<<"("<<cnt1<<","<<cnt2<<","<<cnt3<<")";
   
    return 0;
}

                                                                                    
发表于 2025-09-21 13:07:42 回复(0)
s = input()
r,g,b = s.count('R'),s.count('G'),s.count('B')
print(f"({r},{g},{b})")

发表于 2025-09-09 16:31:20 回复(0)
S = input()
num_R = 0
num_G = 0
num_B = 0
for s in S:
    if s=='R':
        num_R += 1
    elif s=='G':
        num_G += 1
    elif s=='B':
        num_B += 1
print(f'({num_R},{num_G},{num_B})')
发表于 2025-08-24 22:40:47 回复(0)
#include <iostream>
#include <map>
using namespace std;

int main() {
    string s;
    cin>>s;
    map<char,int> mp;
    for(int i=0;i<s.size();i++){
        mp[s[i]]++;
    }
    cout<<'('<<mp['R']<<','<<mp['G']<<','<<mp['B']<<')';
}

发表于 2025-08-04 20:51:53 回复(0)
#include <stdio.h>
int main() {
    int a=0, b=0, c=0,i = 0;
    char S[100000];
    scanf("%s", S);

    while(S[i] != '\0')
    {
        if(S[i] == 'R' ){a++;}
        if(S[i] == 'G' ){b++;}
        if(S[i] == 'B' ){c++;}
        i++;
    }
    printf("(%d,%d,%d)\n",a,b,c);
   
    return 0;
}
发表于 2025-06-24 15:44:25 回复(0)