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;
}