Переделать char функцию под int

317
14 июля 2017, 05:11

Здравствуйте, нужно переделать данную функцию, так, что б вместо подпоследовательности char, она проверяла подпоследовательность int:

int check_subsequence (char a[], char b[]) {
   int c, d;
   c = d = 0;
   while (a[c] != '\0') {
      while ((a[c] != b[d]) && b[d] != '\0') {
         d++;
      }
      if (b[d] == '\0')
         break;
      d++;
      c++;
   }
   if (a[c] == '\0')
      return 1;
   else
      return 0;
}

Входны данные в функцию:

bool check_subsequence(int *A, int *B, int n, int m)//n- длина A, m - длина B
Answer 1

Простой дословный перевод вашей функции -

bool check_subsequence(int *a, int *b, int n, int m)
{
   int c = 0, d = 0;
   while (c != n) {
      while((d != m) && (a[c] != b[d])) {
         d++;
      }
      if (d == m)
         break;
      d++;
      c++;
   }
   if (c == n)
      return true;
   else
      return false;
}

Не компилировал и не тестировал, но слишком просто, чтоб сильно ошибиться :)

Answer 2

Написал альтернативный:

bool check_subsequence(int *a, int *b, int n, int m)
{
    while ((n > 0) && (m > 0)) {
        if (a[n] == b[m]) {
            --n;
            --m;
        }
        else
        {
            --n;
        }
    }
    if (m == 0)return true;
    else return false;
}
READ ALSO
Создать 2D анимацию для приложения UWP с привязкой DirectX

Создать 2D анимацию для приложения UWP с привязкой DirectX

Есть приложение UWP (C#),которое отображает текущую погоду и ее прогноз, с самым простым функционалом

240
Не срабатывает условный оператор else в jquery

Не срабатывает условный оператор else в jquery

Есть следующий нерабочий код

229