Top.Mail.Ru
Ответы

Программирование на с++, информатика, помогите пожалуйста, очень срочно

Ниже дана программа, которая вычисляет количество подстрок «AA» в строке, хранящейся в переменной s.

#include <iostream>

#include <string>

using namespace std;

int main()

{

string s = "AABABBDABBABCABCCBAAA";

int kol = 0;

for (char i : s)

{

if (s[i] == 'A' && s[i + 1] == 'A') {

kol += 1;

}

}

cout << kol << endl;

}



Так, для строки, хранящейся в переменной s, алгоритм должен вывести результат 3 (AABABBDABBABCABCCBAAA).

В указанном выше алгоритме допущена ошибка в одной строчке кода. Найдите и исправьте ее. В ответе укажите исправленную строку кода.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
7мес
1234567891011121314151617181920212223
 #include <algorithm> 
#include <iostream> 
#include <string>

using namespace std;

size_t counter(const string& str, const string& sub) { 
    if (sub.empty()) return 0; 
    size_t cnt = 0; 
    size_t pos = 0; 
    while ((pos = str.find(sub, pos)) != string::npos) { 
        ++cnt; 
        ++pos; 
    } 
    return cnt; 
}

int main() { 
    const string str = "AABABBDABBABCABCCBAAA"; 
    const string sub{ "AA" }; 
    cout << counter(str, sub) << '\n'; 
    cin.get(); 
} 
Аватар пользователя
Искусственный Интеллект
7мес

for (char i : s)

Поправь тут, чтобы индексы правильно считало.