В следующем коде мы должны сначала вычислить вес однородных подстрок, присутствующих в наших строках.Унифицированные подстроки - это те, которые содержат только один символ, такой как «a» или «aaa».Вес символа определяется как a-1 b-2 ...... z-26.
После вычисления весов всех допустимых равномерных подстрок нам будут заданы различные запросы, и мы получимпроверить, нет ли данного нет.это массив или нет.
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
int i=0,j=0,k=0;
int arr[10000];
int c=0;
while(s[i]!='\0')
{
int x=(int)s[i];
x=x-96;
arr[c++]=x;
j=i+1;
int sum=x;
while(s[j]==s[i])
{
sum+=x;
arr[c++]=sum;
j++;
}
i=j;
}
int q;
cin>>q;
for(i=0;i<q;i++)
{
int val;
cin>>val;
bool exists=find(begin(arr),end(arr),val)!=end(arr);
if(exists==true)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
Ввод:
abccddde
6
1
3
12
5
9
10
Ожидаемый результат:
YES
YES
YES
YES
NO
NO
Фактический результат:
YES
YES
YES
YES
NO
YES