题目大意
给出只包含 0
和 1
的字符串
s
s
s,再输入
n
n
n,再输入
n
n
n 行,每行
2
2
2 个数
a
a
a 和
b
b
b,请求出,在位置
a
a
a 和位置
b
b
b 之间的字符(包括它们俩)是不是完全相同的。
注意,
a
a
a 可能比
b
b
b 大,请调换顺序;字符位置从
0
0
0
开始编号。
思路
根据题意模拟即可。将 a a a 到 b b b 的字母全部循环一遍,判断是否用不同的。最后再进行输出。
注意点
这是从下标 0 0 0 开始的,这点要注意。
我们循环只需要从 s a s_a sa 循环到 s b s_b sb 的前一项即可。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
string a;
int cyq = 0;
while(cin>>a) {//持续输入
int b;
cin>>b;
printf("Case %d:\n",++cyq);
for(int i = 1;i <= b;i++) {
int c,d;
cin>>c>>d;
if(c > d) {
swap(c,d);//交换
}
bool k = 1;
for(int i = c;i < d;i++) {//模拟
if(a[i] != a[i + 1]) {
k = 0;
break;
}
}
//输出
if(k) {
printf("Yes\n");
}
else{
printf("No\n");
}
}
}
}