Форум программистов, компьютерный форум, киберфорум
Наши страницы

Определить, сколько раз встречается в строку самое короткое слово (перевести из PASCAL в С++) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выпуклый многоугольник http://www.cyberforum.ru/cpp-beginners/thread622033.html
Есть массив точек, нужно определить выпуклый ли это многоугольник. Я так понимаю что нужно посчитать каждый угол. Может быть можно другим более простым способом это сделать ?
C++ Просуммировать и выдать сумму всех чисел диапазона Суть первой задачи такова, чтобы пользователем вводились два числа - нижнее и верхнее значение диапазона чисел, а потом все числа входящие в диапазон (нижнее и верхнее включительно) надо... http://www.cyberforum.ru/cpp-beginners/thread622019.html
C++ Определить количество дней в месяце для невысокосного года
Дан номер месяца - целое число в диапазоне 1-12 (1-январь,2- февраль, т.д). Определить количество дней в этом месяце для невысокосного года.
C++ Преобразовать строчные буквы в заглавные
Дана строка содержащая текст, записанный строчными буквами. Получить в другой строке тот же текст, записанный заглавными буквами.
C++ Нули в конце записи n! http://www.cyberforum.ru/cpp-beginners/thread622004.html
Эта программа вычисляет нули в конце записи факториала числа: #include <stdio.h> #include <math.h> long recourse(long n) //n - Число; { long z=0,x; //z - счётчик, x - количество...
C++ string, invalid null pointer #include <stdio.h> #include <iostream> #include <string> using namespace std; #define SIZE 450 //--------------------------------------------------------------------------- using... подробнее

Показать сообщение отдельно
salam
170 / 151 / 16
Регистрация: 10.07.2012
Сообщений: 748
12.07.2012, 05:37
гарантировано, что все слова строки с наименьшим количеством букв лексикографически равны?

Добавлено через 12 минут
если гарантировано, то можно так сделать...

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
#include <map>
#include <string>
#include <iostream>
using namespace std;
 
int get_words(string& s)
{
    int repeat;
    int min_length = 2000000000;
    for(int i=0; i < s.length(); i++)
        if(s[i] != ' ')
        {
            int start_index = i;
            while(i != s.size() && s[i] != ' ')
                i++;
            if(i-start_index == min_length)
                repeat++;
            if(i-start_index < min_length)
            {
                repeat = 1;
                min_length = i-start_index;
                string str = s.substr(start_index, i-start_index);
            }
        }
    return repeat;
}
 
int main()
{
    string str;
    getline(cin, str);
    cout << get_words(str) << endl;
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru