目录
第一题 车辆统计
(car.cpp)
国豪家的小区旁边有个 T 字型的路口。暑假的时候,国豪会坐到路口旁边的树荫下纳凉。有时候,他一遍纳凉,一遍会观察从路口驶过的汽车,他发现大部分司机都严格遵守交通规则,在绿灯的时候通过路口,还有一些司机会抢着黄灯冲过路口,这样做其实挺危险,更有甚者,有少部分司机会无视红灯的存在,直接闯红灯通过路口,看得国豪心惊肉跳。现在给出某段时间国豪观察的车辆通过情况,请你统计绿灯、黄灯、红灯三种情况下通过的车辆数。
输入:
由 green、yellow、red 三个单词构成的字符串,分别表示一辆车在
绿色、黄色、红色的交通灯下经过路口。
输出:
一行三个整数,表示绿灯、黄灯、红灯三种情况下通过的车辆数。
样例输入:
greengreenyellowgreenredgreenyellow
样例输出:
4 2 1
说明:
整个字符串有 4 个 green,2 个 yellow 和 1 个 red,说明有 4 辆车在
绿灯的情况下通过,有 2 辆车在黄灯的情况下通过,有 1 辆车在红灯
的情况下通过。
数据范围:
3<=字符串的长度<=10000
题解:
本题主要考察字符串相关知识,因为green、yellow、red这3个字符串中,都有各自特有的字符,例如:green中的'g'和'n'、yellow中的’y‘、'l'、'w'、red中的'd',也就是说,输入的字符串中,只要出现了一个'g',就出现了一次"green",yellow和red同理。因此,我们只需要统计特殊字符出现的次数,分别用3个变量来计数,即可解出本题。
参考程序:
#include <iostream>
#include <cstring>
using namespace std;
string s;
int green=0,yellow=0,red=0;
int main(){
//freopen("car.in","r",stdin);
//freopen("car.out","w",stdout);
cin>>s;
for(int i=0;i<s.length();i++){
//找出green、yellow、red各自的特有字符
switch(s[i]){
case 'g':
green++;
break;
case 'y':
yellow++;
break;
case 'd':
red++;
break;
default:
continue;
}
}
cout<<green<<" "<<yellow<<" "<<red<<endl;
return 0;
}
第二题 直角三角形
(rt.cpp)