Advertisement
simonradev

MagicExchangeableWords

Feb 15th, 2017
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace MagicExchangableWords
  5. {
  6.     public class MagicExchangableWords
  7.     {
  8.         public static void Main()
  9.         {
  10.             string[] inputLine = Console.ReadLine().Split();
  11.  
  12.             string firstWord = inputLine[0];
  13.             string secondWord = inputLine[1];
  14.  
  15.             Dictionary<char, char> mappedChars = new Dictionary<char, char>();
  16.  
  17.             int smallerLen = Math.Min(firstWord.Length, secondWord.Length);
  18.  
  19.             bool isExchangable = true;
  20.             for (int currSymbol = 0; currSymbol < smallerLen; currSymbol++)
  21.             {
  22.                 char firstSymbol = firstWord[currSymbol];
  23.                 char secondSymbol = secondWord[currSymbol];
  24.  
  25.                 if (!mappedChars.ContainsKey(firstSymbol))
  26.                 {
  27.                     mappedChars[firstSymbol] = secondSymbol;
  28.                 }
  29.                 else
  30.                 {
  31.                     if (mappedChars[firstSymbol] != secondSymbol)
  32.                     {
  33.                         isExchangable = false;
  34.  
  35.                         break;
  36.                     }
  37.                 }
  38.             }
  39.  
  40.             if (!isExchangable)
  41.             {
  42.                 Console.WriteLine("false");
  43.  
  44.                 return;
  45.             }
  46.  
  47.             for (int currSymbol = smallerLen; currSymbol < firstWord.Length; currSymbol++)
  48.             {
  49.                 char symbol = firstWord[currSymbol];
  50.  
  51.                 if (!mappedChars.ContainsKey(symbol))
  52.                 {
  53.                     isExchangable = false;
  54.  
  55.                     break;
  56.                 }
  57.             }
  58.  
  59.             for (int currSymbol = smallerLen; currSymbol < secondWord.Length; currSymbol++)
  60.             {
  61.                 char symbol = secondWord[currSymbol];
  62.  
  63.                 if (!mappedChars.ContainsValue(symbol))
  64.                 {
  65.                     isExchangable = false;
  66.  
  67.                     break;
  68.                 }
  69.             }
  70.  
  71.             Console.WriteLine(isExchangable ? "true" : "false");
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement