DaniPasteBin

Untitled

Jun 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.25 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace _05.MagicExchangeableWords
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             string []input = Console.ReadLine().Split(' ').ToArray();
  12.             string word1 = input[0];
  13.             string word2 = input[1];
  14.  
  15.             //правя метод
  16.             if (AreExchangeable(word1, word2))
  17.             {
  18.                 Console.WriteLine("true");
  19.             }
  20.             else
  21.             {
  22.                 Console.WriteLine("false");
  23.             }
  24.            
  25.         }
  26.         //по условие да се напише метод да връща bool
  27.         static bool AreExchangeable(string word1, string word2)
  28.         {
  29.             bool areExchangeable= true;
  30.  
  31.  
  32.              
  33.             Dictionary<char, char> chars = new Dictionary<char, char>();     //правя речник, за да ги съхраня по двойки. В него ключа е
  34.                                                                              //уникален и не може да се повтаря,а това е и част от условието!
  35.  
  36.             for (int i = 0; i < Math.Min(word1.Length, word2.Length); i++)   //от 0 до по-късата дължина
  37.             {
  38.                 if (!chars.ContainsKey(word1[i])) //пълним ,речника чрез проверки.
  39.                 {
  40.                     chars.Add(word1[i],word2[i]); //Ако не го съдържа символ от първата дума, добавяме KV pairs в речника
  41.                 }
  42.                 else
  43.                 {
  44.                     //проверка дали
  45.                     if (word2[i] == chars[word1[i]])
  46.                     {
  47.                         areExchangeable = true;
  48.                     }
  49.                     else
  50.                     {
  51.                         areExchangeable = false;
  52.                     }
  53.                 }
  54.             }
  55.             if (word1.Length!=word2.Length)  //при различни дължини на стринговете
  56.             {
  57.                 if (word1.Length > word2.Length)  //първи е по-дълъг
  58.                 {
  59.                     for (int i = word2.Length; i < word1.Length; i++)
  60.                     {
  61.                         if (!chars.ContainsKey(word1[i]))
  62.                         {
  63.                             areExchangeable = false;
  64.                         }
  65.                         else
  66.                         {
  67.                             areExchangeable = true;
  68.                         }
  69.                     }
  70.                 }
  71.                 else  //word1 < word2
  72.                 {
  73.                     for (int i = word1.Length; i < word2.Length; i++)
  74.                     {
  75.                         if (!chars.ContainsValue(word2[i]))
  76.                         {
  77.                             areExchangeable = false;
  78.                         }
  79.                         else
  80.                         {
  81.                             areExchangeable = true;
  82.                         }
  83.                     }
  84.                 }
  85.                
  86.             }
  87.             return areExchangeable;
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment