经开区2022年信息学竞赛试题 

一等奖分数线:130分

题目比较水,只有四题,而且三题都是水题

此些题适合新手来刷刷经验(等等我自己不就是新手嘛!)

咳咳,话不多说,切入正题

车辆统计(car)

题目描述 Description

国豪家的小区旁边有个 T 字型的路口。暑假的时候,国豪会坐到路口旁边的树荫下纳凉。有时候,他一边纳凉,一边会观察从路口驶过的汽车,他发现大部分司机都严格遵守交通规则,在绿灯的时候通过路口,还有一些司机会抢着黄灯冲过路口,这样做其实挺危险,更有甚者,有少部分司机会无视红灯的存在,直接闯红灯通过路口,看得国豪心惊肉跳。现在给出某段时间国豪观察的车辆通过情况,请你统计绿灯、黄灯、红灯三种情况下通过的车辆数。

输入描述 Input Description

由 green、yellow、red 三个单词构成的字符串,分别表示一辆车在
绿色、黄色、红色的交通灯下经过路口。

输出描述 Output Description

一行三个整数,表示绿灯、黄灯、红灯三种情况下通过的车辆数。

样例输入 Sample Input

greengreenyellowgreenredgreenyellow

样例输出 Sample Output

4 2 1

数据范围及提示 Data Size & Hint

说明:
整个字符串有 4 个 green,2 个 yellow 和 1 个red,说明有 4 辆车在绿灯的情况下通过,有 2 辆车在黄灯的情况下通过,有 1 辆车在红灯的情况下通过。

数据范围:
3<=字符串的长度<=10000

好家伙,拿出来一看,字符串!

题目意思就是统计下green,yellow和red三个单词的个数并输出

附上勉强AC的蒟蒻代码

#include<bits/stdc++.h>//万能头
using namespace std;
int g,y,r; 
string s;
int main(){
	cin>>s;
	int len=s.size();//求字符串长度
	for(int i=0;i<len;i++){//遍历字符串
		if(s[i]=='g'&&s[i+1]=='r'&&s[i+2]=='e'&&s[i+3]=='e'&&s[i+4]=='n'){//判断当前和后面四个字符是否组成green
			g++;//计数器加加
		}
		else if(s[i]=='y'&&s[i+1]=='e'&&s[i+2]=='l'&&s[i+3]=='l'&&s[i+4]=='o'&&s[i+5]=='w'){//判断当前和后面五个字符是否组成yellow
			y++;//计数器	
		}
		else if(s[i]=='r'&&s[i+1]=='e'&&s[i+2]=='d'){//判断当前和后面两个字符是否组成red
			r++;//计数器
		}
	}
	cout<<g<<" "<<y<<" "<<r<<" ";//华丽输出
	return 0;
}

此题祝AC!

Logo

助力合肥开发者学习交流的技术社区,不定期举办线上线下活动,欢迎大家的加入

更多推荐