1 / 1 / 0
Регистрация: 19.07.2016
Сообщений: 28
1

Найти место вхождения в строку самой длинной последовательности пробелов и определить ее длину

19.07.2016, 21:13. Показов 1134. Ответов 3
Метки нет (Все метки)

Доброго времени суток! нужно найти место вхождения в строку самой длинной последовательности пробелов и определить ее длину, у меня в алгоритме что-то не так, работает через раз или косячно. Помогите, пожалуйста

C++ (Qt)
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
    void Find_prob()
    {
 
        int check = Word.find(" ");
        if (check == -1) cout << "probelov net";
        else
        {
            string bukva;
            int i = 0, c = 0, max = 0;
            int *P = new int;
            int len_str = Word.length();
 
            for (int i = 0; i < len_str; i++)
            {
                bukva = Word.substr(i, 1);
                if (bukva == " ")
                {
                    if (P[c] < 0) P[c] = 0;
                    P[c]++;
                }
                else c++;
            }
            
            for (int i = 0; i < c; i++)
            {
                if (P[i] > P[i + 1])
                    max = i;
            }
            
            cout << "kol-vo = " << P[max] << endl <<  "mesto = " << max;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2016, 21:13
Ответы с готовыми решениями:

Найти длину самой длинной последовательности подряд идущих нулевых элементов массива
Задан числовой массив A(n). Найти длину самой длинной последовательности подряд идущих элементов...

Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю
Задан одномерный массив. Найти длину самой длинной последовательности подряд идущих элементов...

Определить длину самой длинной подстроки из подряд стоящих букв «е»
Прошу проверить программу на правильность. Условие: Дана символьная строка. Определить длину самой...

Определить длину самой длинной цепочки единиц в переменной unsigned long a
#include &lt;iostream&gt; using namespace std; int main() { unsigned long a = 123123; ...

3
1 / 1 / 2
Регистрация: 19.07.2016
Сообщений: 6
20.07.2016, 08:08 2
Лучший ответ Сообщение было отмечено xcuube как решение

Решение

Kind of ...

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
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <stdio.h>
#include <string>
 
int main() {
    
    std::string str;
    std::cout << "Enter sentence: ";
    std::getline(std::cin, str);
 
    // Переменные в которых будем хранить ответ
    int idx = -1;
    int len = 0;
 
    // Дополнительные переменные
    int cur_idx, cur_len = 0;
 
    // Обход строки
    for (int i = 0; i < str.length(); i++) {
        
        // текущий символ пробел
        if (' ' == str[i]) 
        {
            if (0 == cur_len) cur_idx = i;
            cur_len++;
        }
        
        // текущий символ не пробел
        // или текущий символ пробел и он последний в строке
        if (' ' != str[i] || (' ' == str[i] && i == str.length() - 1)) {
            if (cur_len > len) {
                idx = cur_idx, len = cur_len;
            }
            cur_len = 0;
        }
    
    }
 
    // Вывод результата
    std::cout << "Index: " << idx << ", Length: " << len << std::endl;
 
    
 
}
0
1 / 1 / 0
Регистрация: 19.07.2016
Сообщений: 28
20.07.2016, 10:42  [ТС] 3
спасибо!
0
803 / 530 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
20.07.2016, 11:30 4
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
32
33
34
35
36
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str(" 1   1  1     ");
    //getline(cin, str);
 
    decltype(str.size()) pos;
    if ((pos = str.find_first_of(' ')) != string::npos)
    {
        auto count(0u), cur(0u), index(0u);
 
        while (pos != string::npos)
        {
            while (str[pos] == ' ' && pos != str.size())
            {
                ++cur, ++pos;
            }
 
            if (cur > count)
                count = cur, index = pos - cur;
 
            cur = 0;
 
            pos = str.find_first_of(' ', pos);
        }
 
        cout << index << ' ' << count << endl;
    }
    else
        cout << "No spaces" << endl;
 
    system("pause");
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2016, 11:30
Помогаю со студенческими работами здесь

Определить длину самой длинной цепочки единиц в переменной unsigned long a;
Помогите составить алгоритм нахождения этой длины

Найти длину самой длинной возрастающей подпоследовательности в массиве
Вводится массив. Найти в нем длину самой длинной возрастающей подпоследовательности.

Найти длину самой длинной цепочки положительных чисел
Найти длину самой длинной цепочки положительных чисел. Например, для последовательности -1, 1, 2,...

Нужно найти длину самой длинной подпоследовательности, в которой равное количество 0 и 1.
Здравствуйте. Задана последовательность из 0 и 1. Нужно найти длину самой длинной...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru