Люди, помогите если знаете сделать задание, очень нужно...
Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие
Здравствуйте, Flagman, Вы писали:
F>Люди, помогите если знаете сделать задание, очень нужно... F>Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие
надо отделить сначало слова, например, массив s[i] — массив из n слов, каждая из s[i] — одно слово
потом
b[i] = s[i]<s[i+1] для всех i=0,n-2
если (b[i]==true && b[i+1]==true) то s[i+1] выводишь, для всех i=0,n-2
Здравствуйте, ilnar, Вы писали:
I>Здравствуйте, Flagman, Вы писали:
F>>Люди, помогите если знаете сделать задание, очень нужно... F>>Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие
I>надо отделить сначало слова, например, массив s[i] — массив из n слов, каждая из s[i] — одно слово I>потом I>b[i] = s[i]<s[i+1] для всех i=0,n-2
I>если (b[i]==true && b[i+1]==true) то s[i+1] выводишь, для всех i=0,n-2
I>все массивы можно не хранить
F>Люди, помогите если знаете сделать задание, очень нужно... F>Дана строка, содержащая текст. Найти те слова в тексте, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними — только большие
Если бить белку в лоб , то можно так
#include"stdafx.h"#include <boost/tokenizer.hpp>
#include <string>
#include <iostream>
#include <algorithm>
#include <functional>
int _tmain(int argc, _TCHAR* argv[]){
using namespace std;
using namespace boost;
vector<string> in_;
string str = "a b e h c f g e f ha z x y";
tokenizer<> tok(str);
for(tokenizer<>::iterator it = tok.begin(), end = tok.end(); it != end; ++it){
if(find_if(tok.begin(), it, bind2nd(greater<string>(), *it)) == it)
if(find_if(it, end, bind2nd(less<string>(), *it)) == end)
cout << *it << endl;
}
return 0;
}