Advertisement
simonradev

MagicExchangeableWords

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