
C++. 1.Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите это слово и
его длину. Если таких слов несколько, выведите первое из них.Входные данныеЗадана одна строка, содержащая пробелы. Слова разделены ровно одним пробелом. Пробелы в начале и конце строки допускаются.Выходные данныеНеобходимо вывести самое длинное слово в строке и его длину.2.По данной строке определите, является ли она палиндромом (то есть, можно ли прочесть ее наоборот, как, например, слово "топот").Входные данныеНа вход подается 1 строка без пробелов.Выходные данныеНеобходимо вывести yes, если строка является палиндромом, и no в противном случае.

Ответы на вопрос

Ответ:
107
#include <iostream>
using namespace std;
int main() {
int c=0,max=0,d;
string s;
getline(cin,s);
for(int i=0;i<s.size();i++)
{ if(s[i]!=' ')c++;
else {
if(c>max){max=c;
d=i-c; }
c=0;
} if(c>max){max=c;
d=i-c+1; }
}
for(int i=d;i<d+max;i++)
cout << s[i] ;
cout << endl << max;
return 0;
}
108
#include <iostream>
#include <cmath>
using namespace std;
int main()
{ int c=0;
string s,a="";
cin >> s;
for(int i=s.size()-1;i>=0;i--)
a+=s[i];
if(s==a) cout << "yes";
else cout << "no";
return 0;
}
Объяснение:



Вот примеры C++ кода для решения двух задач:
- Нахождение самого длинного слова и его длины в строке:
cpp#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
getline(cin, input); // Ввод строки с пробелами
// Инициализируем переменные для хранения самого длинного слова и его длины
string longestWord = "";
int maxLength = 0;
// Инициализируем временную переменную для текущего слова
string currentWord = "";
// Перебираем символы в строке
for (char c : input) {
if (c != ' ') {
currentWord += c; // Добавляем символ к текущему слову
} else {
// Если текущее слово длиннее самого длинного найденного, обновляем переменные
if (currentWord.length() > maxLength) {
longestWord = currentWord;
maxLength = currentWord.length();
}
currentWord = ""; // Сбрасываем текущее слово
}
}
// Проверяем последнее слово после завершения цикла
if (currentWord.length() > maxLength) {
longestWord = currentWord;
maxLength = currentWord.length();
}
// Выводим результат
cout << "Самое длинное слово: " << longestWord << endl;
cout << "Его длина: " << maxLength << endl;
return 0;
}
- Проверка, является ли строка палиндромом:
cpp#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input; // Ввод строки без пробелов
// Инициализируем переменную для хранения результата
string result = "yes";
// Перебираем символы строки с обоих концов и сравниваем их
for (int i = 0, j = input.length() - 1; i < j; i++, j--) {
if (input[i] != input[j]) {
result = "no";
break;
}
}
// Выводим результат
cout << result << endl;
return 0;
}
Обратите внимание, что второй код не учитывает пробелы и другие разделители, так как в задании указано, что строка передается без пробелов. Если необходимо учитывать их, код может потребовать некоторой модификации.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili