Задание 2
Чтобы искать документы, нужно уметь разбивать текст на слова. Мы сделаем это нестандартно, поэтому напишем свой алгоритм.
Для начала поймём, где разбивать строку. Будем считать, что слова разделяются пробелами. Если подряд идёт несколько пробелов, то между двумя соседними пробелами есть пустое слово.
Считайте с терминала строку полностью до перевода строки. Выведите индексы символов, перед которыми заканчиваются слова. Если вы считали пустую строку, нужно вывести 0, потому что в этой строке есть пустое слово. Оно заканчивается там же, где строка — перед нулевым символом.
Например, если вы считали строку с двумя пробелами:
green parrot
то, нужно вывести:
5
6
13
Перед символами с этими индексами заканчиваются слова green, пустое слово и слово parrot соответственно.
Это максимум информации, к сожалению.
C/C++
Не могу решить задачу в яндекс практикуме
Звучало сложнее, если честно:
#include < iostream >
#include < vector >
using namespace std;
using ll = long long;
int main() {
vector ans;
string s;
getline(cin, s);
for (ll i = 0; i < s.length(); i++) {
if (s[i] == ' ')
ans.push_back(i);
}
if(s.back() != ' ')
ans.push_back(s.length());
for (auto &i: ans)
cout << i << "\n";
}
#include < iostream >
#include < vector >
using namespace std;
using ll = long long;
int main() {
vector ans;
string s;
getline(cin, s);
for (ll i = 0; i < s.length(); i++) {
if (s[i] == ' ')
ans.push_back(i);
}
if(s.back() != ' ')
ans.push_back(s.length());
for (auto &i: ans)
cout << i << "\n";
}
На работу в Яндекс все равно не возьмут, там исключительно свои отпрыски. Поищи занятие получше, чем эти дебильные практикумы для бесплатных работников и халявных идеегенераторов)))
Если еще актуально, то я решил так
#include
#include
using namespace std;
int main() {
string s;
getline(cin, s);
for (int i = 0; i<=s.length(); ++i){
if(s[0]=='\0'){
cout << "0" << endl;
break;
} else{
if (s[i]==' '){
cout << i << endl;
}
}
}
if(s.length()>0){
cout << s.length() <<endl;
}
#include
#include
using namespace std;
int main() {
string s;
getline(cin, s);
for (int i = 0; i<=s.length(); ++i){
if(s[0]=='\0'){
cout << "0" << endl;
break;
} else{
if (s[i]==' '){
cout << i << endl;
}
}
}
if(s.length()>0){
cout << s.length() <<endl;
}
а в гугле нельзя -_-
#include <iostream>
#include <string>
using namespace std;
int main() {
string query;
int n = 0;
getline(cin, query);
for (int i = 0; i < 1 + query.length(); ++i) {
if (query[i] == ' ')
cout << i << endl;
if (i == query.length())
cout << i << endl;
}
return 0;
}
#include <string>
using namespace std;
int main() {
string query;
int n = 0;
getline(cin, query);
for (int i = 0; i < 1 + query.length(); ++i) {
if (query[i] == ' ')
cout << i << endl;
if (i == query.length())
cout << i << endl;
}
return 0;
}
офиц. решение #include <iostream>
#include <string>
using namespace std;
int main() {
string query;
getline(cin, query);
for (int i = 0; i < query.size(); ++i) {
if (query[i] == ' ') {
cout << i << endl;
}
}
cout << query.size() << endl;
}
https://pastebin.com/VyXMNENq
#include <string>
using namespace std;
int main() {
string query;
getline(cin, query);
for (int i = 0; i < query.size(); ++i) {
if (query[i] == ' ') {
cout << i << endl;
}
}
cout << query.size() << endl;
}
https://pastebin.com/VyXMNENq
ПРОВЕРЕНО, работает.


Похожие вопросы
- Правильно ли решено задание по Яндекс практикуму на тему Вектор, урок 4 на языке программирования С++ ?
- Можете решить задачу через delete [ ] ? с++
- Программирование C++ / не могу решить задачу
- Создать простой класс, конструктор, и несколько функций. Не могу решить задачу, плохо понял тему, помогите пожалуйста.
- Яндекс практикум программирование
- Яндекс практикум помогите и объясните решение
- Помогите решить задачу по программированию на C++
- Решите задачу на с++, или хотя бы скажите идею как это вообще решать пожалуйста.
- Решите задачу на любом языке, или хотя бы скажите идею как это вообще решать пожалуйста.
- Решите задачу на любом языке. Желательно на с++.