Exes и Ohs (C++)

Вот что меня просят сделать: проверить, есть ли в строке одинаковое количество "x" и "o". Метод должен возвращать логическое значение и не учитывать регистр. Строка может содержать любой символ.

Примеры ввода / вывода:

XO("ooxx") => true
XO("xooxx") => false
XO("ooxXm") => true
XO("zpzpzpp") => true // when no 'x' and 'o' is present should return true
XO("zzoo") => false

И это мой код:

#include <iostream>
#include <string>
using namespace std;

bool XO(const std::string& str)
{
  if (str.equals("o", "x")) {
  return true;
  } else {
    return false;
  }
}
int Main() {
  XO("ooxx");
  XO("xooxx");
  XO("ooxXm");
  XO("zpzpzpp");
  XO("zzoo");
}

но не работает. В чем моя проблема? Это ошибка, которую я получаю Кстати

main.cpp:12:11: error: no member named 'equals' in 'std::__cxx11::basic_string<char>'
  if (str.equals("o", "x")) {
      ~~~ ^

1 ответ

Вам нужно посчитать, сколько xсимволы находятся в строке. Результатом будет число. Сделайте то же самое с oсимволы. Это даст вам другой номер. Проверьте, равны ли числа.

Другие вопросы по тегам