Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
 Аватар для Kote_Anonim
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31

Найти количество стрел ( ‘>>-->’ и ‘<--<<’ ) в строке

09.12.2015, 21:34. Показов 7007. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задана последовательность, состоящая только из символов ‘>’, ‘<’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой последовательности. Стрелы – это подстроки вида ‘>>-->’ и ‘<--<<’.
======
Входные данные:
В первой строке входного потока записана строка,
состоящая из символов ‘>’, ‘<’ и ‘-‘ (без пробелов).
Строка состоит не более, чем из 250 символов.

Выходные данные:
В единственную строку выходного потока нужно вывести искомое количество стрелок.
==========

Пример входного файла (input.txt):
<<<<>>--><--<<--<<>>>--><<<<<
Пример выходного файла (output.txt):
4
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.12.2015, 21:34
Ответы с готовыми решениями:

Строка: В строке, состоящей только из символов ‘>’, ‘<’ и ‘-‘, определить количество спрятанных стрел...
Добрый день! Изучаю питон, прохожу олимпиадные задачи, не получается тут одну решить. Задана последовательность, состоящая только из...

Найти количество стрел
Задана последовательность, состоящая только из символов ‘&gt;’, ‘&lt;’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой...

Найти количество стрел, которые спрятаны в последовательности
Задана последовательность, состоящая только из символов ‘&gt;’, ‘&lt;’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой...

8
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
09.12.2015, 22:06
можно и проще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <bits/stdc++.h>
using namespace std;
int f(string a,string b) {
    string s;
    int ans = 0;
    s = b + "$" + a;
    vector<int> v(s.size(), 0);
    for (int i = 1;i < s.size();i++) {
        int t = v[i - 1];
        while (t > 0 && s[t] != s[i])
            t = v[t - 1];
        if (s[i] == s[t])
            t++;
        v[i] = t;
    }
    for (int i = 0;i < s.size();i++) {
        if (v[i] == b.size()) {
            ans++;
        }
    }
    return ans;
}
int main() {
    string a, b = ">>-->", c = "<--<<";
    cin >> a;
    cout << f(a, b) + f(a, c);
    cin.get(), cin.get();
    return 0;
}
1
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
10.12.2015, 09:40
Наверное можно как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
 
size_t getCountMatch(std::string inputString, std::string match){
    size_t pos = 0;
    size_t count = 0;
    pos = inputString.find(match);
    if(pos == std::string::npos)
        return count;
    else{
        while(pos != std::string::npos){
            ++count;
            pos += match.size();
            pos = inputString.find(match, pos);
        }
        return count;   
    }
}
 
int main()
{
    std::string inputString;
    std::string findStr1 = ">>-->";
    std::string findStr2 = "<--<<";
    std::getline(std::cin, inputString);
  
  std::cout << "cout match " << findStr1 << " : " << getCountMatch(inputString, findStr1) << std::endl;
  std::cout << "cout match " << findStr2 << " : " << getCountMatch(inputString, findStr2) << std::endl;
 
  return 0;
}
2
 Аватар для Kote_Anonim
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
15.10.2016, 14:51  [ТС]
Конечно спасибо, но какие-то вы все тугие.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
    int k=0;
    string str;
    cin>>str;
    for(int i=0; i<str.size(); i++)
    {
        if ((str[i]=='>' && str[i+1]=='>' && str[i+2]=='-'&& str[i+3]=='-' && str[i+4]=='>')
         || (str[i]=='<' && str[i+1]=='-' && str[i+2]=='-'&& str[i+3]=='<' && str[i+4]=='<') ) k=k+1;
        
      
    }
  cout<<k;
    return 0;
}
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
15.10.2016, 15:09
Kote_Anonim, В Вашем коде UB.
0
 Аватар для Kote_Anonim
-40 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 31
15.10.2016, 15:24  [ТС]
GbaLog-,Что вы имеете в виду?
Миниатюры
Найти количество стрел ( ‘>>-->’ и ‘<--<<’ ) в строке  
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
15.10.2016, 15:27
Цитата Сообщение от Kote_Anonim Посмотреть сообщение
Что вы имеете в виду?
Имею ввиду то, что Вы имеете в своём коде выход за пределы массива,
что порождает undefined behavior.
0
Заблокирован
15.10.2016, 15:53
C++
1
2
3
4
5
6
7
 string init = "<<<<>>--><--<<--<<>>>--><<<<<";
 
    int count = 0;
    for (int index = 0; (index = init.find(">>-->", index)) != string::npos; index++)count++;
    for (int index = 0; (index = init.find("<--<<", index)) != string::npos; index++)count++;
 
    cout << count;
0
21.10.2016, 09:42

Не по теме:

Цитата Сообщение от Kote_Anonim Посмотреть сообщение
какие-то вы все тугие.
тугой тут только один персонаж, забросивший свою же тему год назад.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.10.2016, 09:42
Помогаю со студенческими работами здесь

Требуется найти количество стрел, которые спрятаны в последовательности.
Задана последовательность, состоящая только из символов ‘&gt;’, ‘&lt;’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой...

Найти количество символов в строке, найти заданные буквы, разделить количество букв на количество символов
Написать код который сперва подсчитывает количество символов в строке а потом из этих находит буквы (a,e,y,u,i) и делит количество букв на...

Дан двумерный массив. найти количество элементов в каждой строке, меньших диагонального в этой строке
1.Сформировать квадратную матрицу 000001 000020 000300 0n-10000 n00000 2.Дан двумерный массив. найти количество элементов в...

Найти количество русских букв и количество цифр в текстовой строке
Найти количество российских букв и количество цифр в текстовой строке

Найти и сохранить в строке те слова текста, количество гласных букв в которых превышает количество согласных
Дана строка. Словом текста считается любая последовательность букв русского алфавита; между соседними словами - не менее одного пробела, за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru