Как найти в строке слово, в котором буквы идут последовательно по латинскому алфавиту - C#
Формулировка задачи:
Допустим дана строка: udhi uhidug uygd abc gutfyf abcde khgdfjg...
Выписать слова abc, abcde и так до конца алфавита с помощью юникода.
Но так, чтобы они начинались с A и заканчивались Z, а не в разброс.
Решение задачи: «Как найти в строке слово, в котором буквы идут последовательно по латинскому алфавиту»
textual
Листинг программы
static bool HasAlphabeticalOrder(string text)
{
text = text.Trim(new char[] { ' ', '.', ',' });
for (int i = 1; i < text.Length; i++)
{
if (text[i - 1] != text[i] - 1)
{
return false;
}
}
return true;
}
static void Main(string[] args)
{
String text = "udhi uhidug uygd abc gutfyf abcde khgdfjg";
Char delimiter = ' ';
String[] substrings = text.Split(delimiter);
List<string> list = new List<string>();
foreach (var substring in substrings)
if (HasAlphabeticalOrder(substring))
list.Add(substring);
list.Sort();
foreach (var str in list)
Console.WriteLine("{0} ", str);
}