Напечатать слова, которые состоят из тех же букв, что и последнее слово предложения - C#
Формулировка задачи:
Программа. Дано предложение, содержащее от 2 до 30 слов, в каждом из которых от 2 до 15 латинских букв, между словами - пробелы, за последним словом - точка. Напечатать все слова, которые состоят из тех же букв, что и последнее слово предложения.
Решение задачи: «Напечатать слова, которые состоят из тех же букв, что и последнее слово предложения»
textual
Листинг программы
using System;
using System.Text.RegularExpressions;
using System.Linq;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите от 2х до 30 слов, разделяя их пробелами: \n");
string fullSentence = Console.ReadLine();
string[] words = fullSentence.Split(new char[]{'.',' ','\t'}, StringSplitOptions.RemoveEmptyEntries);
string withoutLastWord = string.Empty;
for (int i = 0; i < words.Length-1; i++)
{
withoutLastWord += words[i] + " ";
}
string matchString = string.Empty;
foreach (char c in words[words.Length-1])
{
if (!matchString.Contains(c))
{
matchString += c;
}
}
string pattern = "[" + matchString + "]{2,}";
RegexOptions options = RegexOptions.IgnoreCase;
Regex myReg = new Regex(pattern,options);
MatchCollection matches = myReg.Matches(withoutLastWord);
Console.WriteLine("Ответ: ");
foreach (Match match in matches)
{
Console.WriteLine(match.Value);
}
Console.WriteLine("Число найденных совпадений: {0}",matches.Count);
Console.ReadLine();
}
}
}