Форум » Обработка символьных строк » Задача №194 Тема 24 не сходится ответ » Ответить

Задача №194 Тема 24 не сходится ответ

Qwerty: Добрый день! Условие задачи: 194) Текстовый файл 24-191.txt содержит строку из заглавных латинских букв, всего не более чем из 106 символов. Определите количество подстрок длиной не более 15 символов, которые начинаются буквой A, содержат букву F, заканчиваются буквой B и не содержат других букв A и B, кроме первой и последней. В ответе 245. У меня 286. Подскажите, пожалуйста, где я ошибаюсь. На каком тесте? Что лишнее захватывает программа? Мое решение:[pre2] #include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream F("24-191.txt"); string s; int indA, indF, kol=0; getline( F, s ); for( int i=0; i<s.size(); i++) { if (s[ i]=='A') {indA=i;} if (s[ i]=='F') {indF=i;} if (s[ i]=='B') { if (indA!=-1 && indF<i && indF>indA && indF!=-1) { if (i-indA+1<=15) { kol++; indA=-1; // когда нашли цепочку, сбросим индексы indF=-1; } if (i-indA+1>15) {// если длина неподходящая, то нам не нужны индексы A и F indA=-1; indF=-1; } } } } cout << kol; return 0; }[/pre2]

Ответов - 2

Поляков: Вот пример строки, в которой ваша программа находит подходящую подстроку, а ее там нет: string s = "ASTVIQYBFQCDB";

Qwerty: Спасибо огромное!!! Исправила, все получилось



полная версия страницы