Advertisement
PlamenMI81

05. Magic exchangeable words

Oct 26th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.81 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace _05_Magic_exchangeable_words
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             //again:
  12.             var inputLine = Console.ReadLine().Split();
  13.             var result = IsMagic(inputLine);
  14.             Console.WriteLine(result.ToString().ToLower());
  15.             //goto again;
  16.         }
  17.  
  18.         public static bool IsMagic(string[] inputLine)
  19.         {
  20.             var firstWord = inputLine[0];
  21.             var secondWord = inputLine[1];
  22.             var shorterString = firstWord.Length <= secondWord.Length ? firstWord.ToCharArray() : secondWord.ToCharArray();
  23.             var longerString = firstWord.Length > secondWord.Length ? firstWord.ToCharArray() : secondWord.ToCharArray();
  24.             Dictionary<string, string> mappedChars = new Dictionary<string, string>();
  25.  
  26.             for (int i = 0; i < shorterString.Length; i++)
  27.             {
  28.                 var charFromShorterWord = shorterString[i].ToString();
  29.                 var charfromLongerWord = longerString[i].ToString();
  30.                 if (!mappedChars.ContainsKey(charFromShorterWord))
  31.                 {
  32.                     mappedChars.Add(charFromShorterWord, charfromLongerWord);
  33.                 }
  34.                 if (!mappedChars[charFromShorterWord].Equals(charfromLongerWord))
  35.                 {
  36.                     return false;
  37.                 }
  38.             }
  39.             for (int j = shorterString.Length; j < longerString.Length; j++)
  40.             {
  41.                 var charFromLongerWord = longerString[j].ToString();
  42.                 if (!mappedChars.ContainsValue(charFromLongerWord))
  43.                 {
  44.                     return false;
  45.                 }
  46.             }
  47.             return true;
  48.         }
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement