D
Dimka197
Проблема с кодом. Помогите, пожалуйста, решить проблему.
Задание:
Словом в строке считается последовательность букв латинского алфавита, остальные символы – разделители между словами. За один просмотр символов строки найти все самые длинные слова, состоящие только из различных букв, и занести их в новую строку, разделяя пробелом. Считать, что прописные и строчные буквы в словах не различаются.
Код:
Задание:
Словом в строке считается последовательность букв латинского алфавита, остальные символы – разделители между словами. За один просмотр символов строки найти все самые длинные слова, состоящие только из различных букв, и занести их в новую строку, разделяя пробелом. Считать, что прописные и строчные буквы в словах не различаются.
Код:
C++:
using System;
using System.Collections.Generic;
using System.Text;
namespace task3
{
class Program
{
static void Main(string[] args)
{
string temp;
int i = 0;
string temp2="";
Console.WriteLine("Введите строку:");
temp = Console.ReadLine();
Console.WriteLine("Вы ввели: " + temp);
for (i = 0; i < temp.Length; i++)
{
if (temp[i] >= 'A' && temp[i] <= 'Z' || temp[i] >= 'a' && temp[i] <= 'z')
temp2 += temp[i];
else
{
if (temp[i - 1] >= 'A' && temp[i - 1] <= 'Z' || temp[i - 1] >= 'a' && temp[i - 1] <= 'z')
temp2 += " ";
else continue;
}
}
Console.WriteLine("Рабочая строка:");
Console.WriteLine(temp2);
string[] lines = new string[] //тестовый набор строк
foreach (var line in lines)
{
string result = "";
string temp = "";
int maxLength = 0;
for (int i = 0; i < line.Length; i++)
{
if (char.IsLetter(line, i))
{
temp += line[i];
}
else
{
if (temp.Length == maxLength && AllCharsDifferent(temp))
{
result += temp + " ";
maxLength = temp.Length;
}
else if (temp.Length > maxLength && AllCharsDifferent(temp))
{
result = temp + " ";
maxLength = temp.Length;
}
temp = "";
}
}
Console.WriteLine(result);
}
}
private static bool AllCharsDifferent(string p)
{
for (int i = 0; i < p.Length; i++)
for (int j = i; j < p.Length; j++)
if (i != j && p[i] == p[j])
return false;
return true;
}
}
}