Найти, сколько цифр можно составить из этих букв, вывести их и то, что осталось невостребованным - C#
Формулировка задачи:
Дана последовательность из букв. Найти сколько цифр можно составить из этих букв, вывести их и то, что осталось невостребованным
Решение задачи: «Найти, сколько цифр можно составить из этих букв, вывести их и то, что осталось невостребованным»
textual
Листинг программы
class Program
{
// Функция ищет совпадения между двумя входными строками
static string out_slovo(string s_simvol, string v_slovo)
{
string s_res = "";
for (int i = 0; i < v_slovo.Length; i++)
for (int j = 0; j < s_simvol.Length; j++)
if (v_slovo[i] == s_simvol[j])
{
s_res+=s_simvol[j];
break;
}
if (v_slovo.Length > s_res.Length)
s_res = "";
return s_res;
}
// Функция удаляет из исходного набора символов уже использованные
static string out_simvol(string s_simvol, string s_res)
{
for (int i = 0; i < s_res.Length; i++)
for (int j = 0; j < s_simvol.Length; j++)
if (s_res[i] == s_simvol[j])
{
char[] c_simvol = s_simvol.ToCharArray();
c_simvol[j] = '0';
s_simvol = new string(c_simvol);
break;
}
return s_simvol;
}
// Функция выводит результат совпадения s_res
static void out_s_res(string s_res)
{
if (s_res != "")
for (int i = 0; i < s_res.Length; i++)
Console.Write(s_res[i]);
Console.WriteLine(" ");
}
// Функция выводит не использованные символы
static void out_s_simvol(string s_simvol)
{
for (int i = 0; i < s_simvol.Length; i++)
if (s_simvol[i] != '0')
Console.WriteLine(s_simvol[i]);
Console.WriteLine("\n");
}
static void Main(string[] args)
{
string s_res; // Результат совпадения
string s_simvol = "STOLEN"; // Строка произвольных символов
string one = "ONE"; // Строки для поиска
string ten = "TEN";
string two = "TWO";
// И так далее ...
// ZERO
s_res = out_slovo(s_simvol, one); // Ищем совпадения
if (s_res != "")
s_simvol = out_simvol(s_simvol, one); // Удаляем использованные символы
Console.WriteLine("Составлены представления чисел: ");
out_s_res(s_res); // Выводим совпадение
// TEN
s_res = out_slovo(s_simvol, ten);
if (s_res != "")
{
s_simvol = out_simvol(s_simvol, ten);
}
out_s_res(s_res);
// TWO
s_res = out_slovo(s_simvol, two);
if (s_res != "")
s_simvol = out_simvol(s_simvol, two);
out_s_res(s_res);
Console.WriteLine("\nНе использованные символы: ");
out_s_simvol(s_simvol); // Выводим неиспользуемые символы
Console.ReadKey();
}
}