8980 изначити кількість речень у заданому тексті. Вважайте, що речення закінчується одним із символів "."(крапка), "!"(знак оклику) або "?"(знак запитання), а наборів знаків типу "...", "!!!" і "?!" в тексті немає.
Вхідні дані
Один рядок тексту, що складається з латинських символів, розділових знаків та проміжків. Рядок містить не більш ніж 200 символів.Щоб визначити кількість речень, достатньо порахувати символи, які завершують речення:
Оскільки за умовою немає багатокрапок ("...") та повторів типу "!!!", кожен такий символ — це кінець одного речення.
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
int cnt = 0;
for (char c : s) {
if (c == '.' || c == '!' || c == '?')
cnt++;
}
cout << cnt;
return 0;
}
8981 Знайдіть індекси першого та останнього проміжку в заданому рядку, враховуючи, що перший символ має індекс 0.
Вхідні дані
Один рядок тексту, який складається лише із латинських літер, розділових знаків та проміжків.
Вихідні дані
Виведіть індекси першого та останнього проміжку. Якщо проміжків у рідку не знайдеться, то виведіть −1.
Приклади
I am programming on Python.
Оскільки потрібно знайти індекс першого пробілу та індекс останнього пробілу, досить пройтись по рядку й запам’ятати ці значення.
Якщо пробілів немає — вивести -1.
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
int first = -1, last = -1;
for (int i = 0; i < (int)s.size(); i++) {
if (s[i] == ' ') {
if (first == -1) first = i;
last = i;
}
}
8982 Виведіть усі індекси маленької латинської літери a в заданому рядку, враховуючи, що перший символ має індекс 0.
Вхідні дані
Один рядок тексту, який складається лише з латинських літер, розділових знаків та проміжків.
Вихідні дані
Виведіть усі індекси літери a в одному рядку. Якщо літера a у рядку не зустрічається, то вивести -1.
завдання (за прикладами) полягає у виведенні всіх індексів літери a в заданому рядку.
Перевірка:
abrakadabra
Символи a стоять на позиціях:
Вихід:
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
vector<int> indices;
for (int i = 0; i < (int)s.size(); i++) {
if (s[i] == 'a') {
indices.push_back(i);
}
}
if (indices.empty()) {
cout << -1;
} else {
for (int i = 0; i < (int)indices.size(); i++) {
if (i > 0) cout << " ";
cout << indices[i];
}
}
}
8983 Задано рядок, що містить вираз з цифр, знаків арифметичних операцій і дужок. Знайдіть кількість використаних у виразі цифр.
Вхідні дані
Арифметичний вираз, що містить цифри, дужки та арифметичні знаки.
Вихідні дані
Виведіть кількість цифр у виразі.
Приклади
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
int cnt = 0;
for (char c : s) {
if (isdigit(c)) cnt++;
}
cout << cnt;
return 0;
}
8984
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
int count_ops = 0;
for (size_t i = 0; i < s.size(); i++) {
// Перевірка двосимвольних операторів
if (i + 1 < s.size()) {
if (s[i] == '*' && s[i + 1] == '*') {
count_ops++;
i++;
continue;
}
if (s[i] == '/' && s[i + 1] == '/') {
count_ops++;
i++;
continue;
}
}
// Односимвольні оператори
if (s[i] == '+' || s[i] == '-' || s[i] == '*' ||
s[i] == '/' || s[i] == '%') {
count_ops++;
}
}
cout << count_ops;
return 0;
}
8985
Видалити всі маленькі латинські літери a у заданому рядку.
Вхідні дані
Один рядок, що складається з не більш ніж 1000 латинських літер та проміжків.
Вихідні дані
Вивести рядок без маленьких латинських літер a, не змінюючи порядок інших символів.
Приклади
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
for (char c : s) {
if (c != 'a') cout << c;
}
return 0;
}
8986
Задано рядок, що складається з латинських літер та проміжків. Видаліть в ньому всі символи з індексами від n до m включно. Нумерація починається з 0.
Вхідні дані
Перший рядок містить текст, що складається з не більш ніж 1000 латинських літер та проміжків. Другий рядок містить два цілих числа n і m (n ≤ m).
Вихідні дані
Виведіть оновлений рядок.
Приклади
This is my lovely beautiful house
7 16
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
int n, m;
cin >> n >> m;
if (n >= 0 && m < (int)s.size() && n <= m) {
s.erase(n, m - n + 1);
}
cout << s;
return 0;
}8987 Замініть в рядку всі символи 'a' на 'b' і навпаки.
Вхідні дані
Один рядок довжиною не більше 200 символів, що містить тільки латинські букви і пробіли.
Вихідні дані
Виведіть рядок з виконаною заміною.
Приклади
Відповідь #1
barbkbdbarb
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
for (char &c : s) {
if (c == 'a') c = 'b';
else if (c == 'b') c = 'a';
}
cout << s;
return 0;
}
8988
У рядку, що складається з латинських літер і проміжків, замінити кожну послідовність символів "ab" на "ups".
Вхідні дані
Один рядок, що складається з латинських літер та проміжків.
Вихідні дані
Виведіть оновлений рядок.
Приклади
Відповідь #1
upsrakadupsra
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
size_t pos = 0;
while ((pos = s.find("ab", pos)) != string::npos) {
s.replace(pos, 2, "ups"); // замінюємо 2 символи на "ups"
pos += 3; // рухаємося далі після вставки
}
cout << s;
return 0;
}
8989 Задано рядок, що складається з англійських букв і проміжків. Потрібно в ньому подвоїти всі символи a.
Вхідні дані
Один рядок, що складається з англійських літер та проміжків.
Вихідні дані
Відповідь до задачі.
Приклади
Відповідь #1
aabraakaadaabraa
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
string result;
for (char c : s) {
if (c == 'a') {
result += "aa"; // подвоюємо 'a'
} else {
result += c; // додаємо інші символи без змін
}
}
cout << result;
return 0;
}
8990 Рядок складається з маленьких латинських літер і проміжків. Подвійте в ньому всі голосні літери, тобто літери a,e,i,o,u та y.
Вхідні дані
Один рядок, що складається з маленьких латинських літер та проміжків.
Вихідні дані
Виведіть рядок з усіма подвоєними голосними літерами.
Приклади
Відповідь #1
weelcoomee too pyythoon
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
getline(cin, s);
string result;
string vowels = "aeiouy"; // голосні
for (char c : s) {
if (vowels.find(c) != string::npos) {
result += c;
result += c; // подвоюємо голосні
} else {
result += c; // інші символи залишаються
}
}
cout << result;
return 0;
}
8960 З консолі вводиться масив з N цілих чисел. Програма повинна знайти суму елементів масиву, не враховуючи всіх його найменших і найбільших елементів.
Вхідні дані
В першому рядку записане натуральне число N. У наступному рядку записані N цілих чисел.Всі числа за модулем не перевищують 100.
Вихідні дані
Відповідь до задачі.
Приклади
#include <bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
vector<int> a(N);
for (int i = 0; i < N; i++) cin >> a[i];
int mn = *min_element(a.begin(), a.end());
int mx = *max_element(a.begin(), a.end());
int sum = 0;
for (int x : a) {
if (x != mn && x != mx) {
sum += x;
}
}
cout << sum;
}
8961 Задано масив з n цілих чисел. Знайдіть найменший елемент масиву, що зустрічається найпершим та поміняйте його з першим елементом у масиві, не змінюючи порядок інших елементів.
Вхідні дані
Перший рядок містить натуральне число n. У наступному рядку записано n цілих чисел. Усі числа за модулем не перевищують 100.
Вихідні дані
Вивести елементи оновленого масиву.
Приклади
Відповідь #1
-5 -3 5 6 -4 7 -5
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
// знаходимо мінімальний елемент
int min_val = a[0];
int min_idx = 0;
for (int i = 1; i < n; i++) {
if (a[i] < min_val) {
min_val = a[i];
min_idx = i;
}
}
// міняємо місцями з першим елементом
swap(a[0], a[min_idx]);
// вивід
for (int i = 0; i < n; i++) {
if (i) cout << " ";
cout << a[i];
}
return 0;
}
Комментариев нет:
Отправить комментарий