#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=50005;int pre[N][30];char s[N];int q,len;int main(){ scanf("%s",s+1); len=strlen(s+1); for(int i=1;i<=len;i++) {for(int j=1;j<=26;j++) pre[i][j]+=pre[i-1][j];//分别记录每种字母出现次数的前缀和pre[i][s[i]-'a'+1]++;//当前位对应字母累加 } scanf("%d",&q); while(q--) {int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);if(b-a!=d-c)//如果两个单词的长度不相等,就肯定NE{puts("NE");continue;}bool flag=1;for(int i=1;i<=26;i++){int tmp1=pre[b][i]-pre[a-1][i];//a~b第i个字母出现次数int tmp2=pre[d][i]-pre[c-1][i];//c~d第i个字母出现次数if(tmp1!=tmp2)//若某个字母出现次数不相等,则直接判NE{flag=0;break;}}if(flag) puts("DA");else puts("NE"); } return 0;}
经验总结扩展阅读
- 晒茄子干最简单的方法
- 竹荪怎么泡发
- 微信如何添加自己好友(找回添加好友记录)
- 蚊子多怎么可以驱蚊方法
- 用微信账号怎么添加好友(微信怎么查自己主动添加好友记录)
- 我的世界隐形药水制作方法,我的世界隐身药水怎么做
- Java获取/resources目录下的资源文件方法
- 京东云开发者|ElasticSearch降本增效常见的方法
- 5 why 分析法,一种用于归纳抽象出解决方案的好方法
- 冷藏后瓶盖打不开怎么办