найти метод, дающий неправильный ответ в с ++ - PullRequest
1 голос
/ 17 июня 2019

В следующем коде мы должны сначала вычислить вес однородных подстрок, присутствующих в наших строках.Унифицированные подстроки - это те, которые содержат только один символ, такой как «a» или «aaa».Вес символа определяется как a-1 b-2 ...... z-26.

После вычисления весов всех допустимых равномерных подстрок нам будут заданы различные запросы, и мы получимпроверить, нет ли данного нет.массив это или нет.

Вот ссылка на код и соответствующий вывод: https://www.ideone.com/pIBPtQ

#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;
  }
  cout<<"the elements of the array are:"<<endl;
  for(i=0;i<c;i++)
    cout<<arr[i]<<" ";
  return 0;
}

1 Ответ

2 голосов
/ 17 июня 2019

Вы забыли инициализировать arr.

Изменение

int arr[1000];

до

int arr[1000] = {0};

https://www.ideone.com/wIj4vp

Также x=x-96; лучше записать как x -= 'a';.

...