1294 Enquiry

Enquiry

1、题目内容

题目描述
男女同学排成一列,你想知道第i个到第j个同学之间,男女相邻排列的出现次数。

输入
第一行是一个整数K,表示样例的个数。
每个样例的第一行是一个字符串s,其长度len不超过10000,只含字符M和F,M表示男生,F表示女生。
每个样例的第二行是一个整数n(1≤n≤1000),表示查询的次数。
以后的N行,每行两个整数i,j(1≤i<j≤len),表示查询的区间。

输出
每个样例的每次查询输出一个整数。

样例输入
2
MMMMM
3
1 2
1 3
1 5
MFMFM
3
1 5
2 3
3 5
样例输出
0
0
0
4
1
2

2、题目分析

在这个题目中,判断是否男女相邻的话,我们只要比较相邻两个字母是否相同就可以了,但是在敲代码的时候要记得注意好进行比较的区间的设计方法,不要超出指定区域进行比较。

3、参考代码

#include<stdio.h>
#include<string.h>
int main()
{
	int k;
	scanf("%d",&k); //样例个数 
	while(k--)
	{
		int start,end,i,j,len,n;
		char s[10002];
		scanf(" %s",s);
		scanf("%d",&n); //获取查询的次数 
		len=strlen(s); //获取字符串长度 
		while(n--)
		{
			int count=0;
			scanf("%d %d",&start,&end);
			for(int i=start-1;i<end-1;i++)
			{
				if(s[i]!=s[i+1]) //比较相邻的两个字符,不同则意味着男女相邻 
				{
					count++;
				}
			}
			printf("%d\n",count);
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42987451/article/details/83155127