题目描述 小 Y 朋友要参加IT考试,可他有一些不会的题目,你要帮帮他! 他得到了一个长度为 n 的字符串 (s=s1s2s3s4...sn,其中只包含.和#),有 m 次询问,每次包含两个数 a, b。 你的任务是找出每个问题的答案,每个问题的答案包含一个整数 p ,代表字符串由 a 位到 b 位有几位满足 s[i]=s[i+1] (a <= i < i + 1 <= b)。
输入 长度为 n 的字符串(2 <= n< = 10^5),有 m 次询问 (1 <= m <= 10^5),接下来m行每行两个整数a,b(1 <= a < b <= n)。
输出 m行,每行一个整数p。
样例输入 样例1: ...... 4 3 4 2 3 1 6 2 6
样例2: #..### 5 1 3 5 6 1 5 3 6 3 4
样例输出 样例1: 1 1 5 4
样例2: 1 1 2 2 0 提示 注意:字符串首位被记为第一位而非第零位! 对于30%数据 :2<=n<=100,1<=m<=100; 对于70%数据 :2<=n<=10000,1<=m<=10000; 对于100%数据 :2<=n<=10^5,1<=m<=10^5; 对于所有数据:1 <= a < b <= n
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c[100005],ans=0;
string s;
int main(){
cin>>s>>n;
for(int i=1;i<=n;i++){
cin>>a>>b;
for(int j=a-1;j<b-1;j++){
if(s[j]==s[j+1]) ans++;
}
cout<<ans<<endl;
ans=0;
}
return 0;
}
//70分