题目链接
题目描述
给定一个由 'R', 'G', 'B' 三种字符构成的字符串,代表一道彩虹。要求计算出这道彩虹中每种颜色出现的次数,并以 (R,G,B)
的格式输出。
解题思路
这是一个基础的计数问题。
我们的目标是统计字符串中 'R'、'G'、'B' 三种字符的出现次数。
我们可以声明三个整型变量,分别用来记录红色()、绿色(
)和蓝色(
)的数量。
接着,我们遍历输入的字符串中的每一个字符。在遍历过程中,根据当前字符的种类,增加对应颜色计数器的值。
遍历结束后,我们就得到了每种颜色的总数。最后,按照 (R,G,B)
的格式将这三个计数器的值输出即可。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int r_count = 0;
int g_count = 0;
int b_count = 0;
for (char c : s) {
if (c == 'R') {
r_count++;
} else if (c == 'G') {
g_count++;
} else {
b_count++;
}
}
cout << "(" << r_count << "," << g_count << "," << b_count << ")" << endl;
return 0;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int rCount = 0;
int gCount = 0;
int bCount = 0;
for (char c : s.toCharArray()) {
if (c == 'R') {
rCount++;
} else if (c == 'G') {
gCount++;
} else {
bCount++;
}
}
System.out.println("(" + rCount + "," + gCount + "," + bCount + ")");
}
}
s = input()
r_count = s.count('R')
g_count = s.count('G')
b_count = s.count('B')
print(f"({r_count},{g_count},{b_count})")
算法及复杂度
- 算法:遍历计数
- 时间复杂度:
,其中
是输入字符串的长度。我们需要遍历一次字符串。
- 空间复杂度:
,我们只使用了常数个变量来存储计数结果。