【DidaOJ】[1143]字符串

文章字数:166

问题描述

问题分析

记录每个字母出现的次数然后计算就好了
一个有点弯的地方是首尾的两个g允许重叠
所以需要单独判断

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<stdio.h>
#include<string.h>
char s[100200];
int main() {
	while(scanf("%s",s)!=EOF) {
		int l=strlen(s);
		int a[7]= {0,0,0,0,0,0,0};
		for(int j=0; j<l; j++) {
			if(s[j]=='g')
				a[0]++;
			else if(s[j]=='o')
				a[1]++;
			else if(s[j]=='d')
				a[2]++;
			else if(s[j]=='m')
				a[3]++;
			else if(s[j]=='r')
				a[4]++;
			else if(s[j]=='n')
				a[5]++;
			else if(s[j]=='i')
				a[6]++;
		}
		a[0]=a[0]-1;
		a[1]=a[1]/3;
		a[5]=a[5]/2;
		int min=999999;
		for(int j=0; j<7; j++)
			if(min>a[j])
				min=a[j];
		printf("%d\n",min);
	}
	return 0;
}

题目地址:【DidaOJ】[1143]字符串)

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...