Добавил:
bashirjon
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:тюмгу / Lab1
.cpp// Lab1.cpp: главный файл проекта.
#include "stdafx.h"
#include <tuple>
using namespace System;
bool IsPalindrom(String ^ str) {
array<wchar_t> ^arr = str->ToCharArray();
Array::Reverse(arr);
String ^str2 = gcnew String(arr);
return str==str2;
}
bool FindPalindrom(String ^&str) {
bool isPalindrom = false;
int length = str->Length;
int k = length;
String ^helpStr = "";
for (int i = 0; i < length - 1 && !isPalindrom; i++) {
if (i + k > length) {
k--;
i = 0;
}
helpStr = str->Substring(i, /*i + */k);
isPalindrom = IsPalindrom(helpStr);
}
str = helpStr;
return isPalindrom;
}
String ^FindMaxPalindrom(String ^ str) {
String ^findStr = "";
//array<wchar_t> ^some = { ':',';', '.', ',', '!', '?', ' ', '...', '!?' };
//array<String^> ^arr = str->Split(some, StringSplitOptions::RemoveEmptyEntries);
//for each (String ^item in arr) {
//bool isPalindrom = false;
//int length = item->Length;
//int k = length;
//String ^helpStr = "";
//for (int i = 0; i < length - 1 && !isPalindrom; i++) {
// if (i + k > length) {
// k--;
// i = 0;
// }
// helpStr = item->Substring(i, /*i + */k);
// isPalindrom = IsPalindrom(helpStr);
//}
//if ((helpStr->Length > findStr->Length) && isPalindrom)
// findStr = helpStr;
bool isPalindrom = false;
int length = str->Length;
int k = length;
String ^helpStr = str;
//for (int i = 0; i < length - 1 && !isPalindrom; i++) {
// if (i + k > length) {
// k--;
// i = 0;
// }
//helpStr = str->Substring(i, /*i + */k);
// isPalindrom = IsPalindrom(helpStr);
//}
//if ((helpStr->Length > findStr->Length) && isPalindrom)
// findStr = helpStr;
if (FindPalindrom(helpStr)/* && findStr->Length < helpStr->Length*/) {
findStr = helpStr;
}
return findStr;
}
int Count(String ^ str, int &symbols) {
int words = 0;
symbols = 0;
array<wchar_t> ^some = { ':',';', '.', ',', '!', '?', ' ', '...', '!?'};
array<String^> ^arr = str->Split(some, StringSplitOptions::RemoveEmptyEntries);
for each(String^ rr in arr) {
for (int i = 0; i < rr->Length; i++) {
if (Char::IsLetter(rr, i)) {
symbols++;
}
}
}
words = arr->Length;
return words;
}
int main(array<System::String ^> ^args)
{
String ^ str = Console::ReadLine();
String ^ palindrom = FindMaxPalindrom(str);
if (palindrom->Length) {
Console::WriteLine("Максимальный палиндом: " + palindrom);
}
else {
Console::WriteLine("Палиндром не найден!");
}
Console::WriteLine("\n");
int words, symbols = 0;
words = Count(str, symbols);
if (words) {
Console::WriteLine( "Колличество слов: " + words + " букв: " + symbols);
}
else {
Console::WriteLine("Не найдено слов");
}
Console::WriteLine("\n");
return 0;
}
Соседние файлы в папке тюмгу