Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _05.MagicExchangeableWords
- {
- class Program
- {
- static void Main(string[] args)
- {
- string []input = Console.ReadLine().Split(' ').ToArray();
- string word1 = input[0];
- string word2 = input[1];
- //правя метод
- if (AreExchangeable(word1, word2))
- {
- Console.WriteLine("true");
- }
- else
- {
- Console.WriteLine("false");
- }
- }
- //по условие да се напише метод да връща bool
- static bool AreExchangeable(string word1, string word2)
- {
- bool areExchangeable= true;
- Dictionary<char, char> chars = new Dictionary<char, char>(); //правя речник, за да ги съхраня по двойки. В него ключа е
- //уникален и не може да се повтаря,а това е и част от условието!
- for (int i = 0; i < Math.Min(word1.Length, word2.Length); i++) //от 0 до по-късата дължина
- {
- if (!chars.ContainsKey(word1[i])) //пълним ,речника чрез проверки.
- {
- chars.Add(word1[i],word2[i]); //Ако не го съдържа символ от първата дума, добавяме KV pairs в речника
- }
- else
- {
- //проверка дали
- if (word2[i] == chars[word1[i]])
- {
- areExchangeable = true;
- }
- else
- {
- areExchangeable = false;
- }
- }
- }
- if (word1.Length!=word2.Length) //при различни дължини на стринговете
- {
- if (word1.Length > word2.Length) //първи е по-дълъг
- {
- for (int i = word2.Length; i < word1.Length; i++)
- {
- if (!chars.ContainsKey(word1[i]))
- {
- areExchangeable = false;
- }
- else
- {
- areExchangeable = true;
- }
- }
- }
- else //word1 < word2
- {
- for (int i = word1.Length; i < word2.Length; i++)
- {
- if (!chars.ContainsValue(word2[i]))
- {
- areExchangeable = false;
- }
- else
- {
- areExchangeable = true;
- }
- }
- }
- }
- return areExchangeable;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment