Чи можна з літер слова a скласти слово b, причому кожну літеру можна використати тільки один раз?
Вхідні дані
Слово a в першому рядку, b - в другому, що складаються з англійських літер.
Вихідні дані
Вивести Ok при позитивній відповіді і No у протилежному випадку.
Алгоритм розв’язку задачі
- Для кожного символу з рядка b шукаємо індекс в рядку a;
- Якщо індекс рівний -1(символ не знайдено), то перериваємо цикл і виводимо No
- Якщо символ знайдено то видаляємо його з рядка a по індексу.
Розв’язок
using System;
class Program
{
static void Main(string[] args)
{
var a = Console.ReadLine();
var b = Console.ReadLine();
var result = "Ok";
for (int i = 0; i < b.Length; i++)
{
var symbol = b[i].ToString();
var index = a.IndexOf(symbol);
if (index == -1)
{
result = "No";
break;
}
else
{
a = a.Remove(index, 1);
}
}
Console.WriteLine(result);
}
}