Задача №8993 Скласти слово

Чи можна з літер слова 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);
    }
}

Дивіться також: