public static void Main()
Console.WriteLine("Let's match two strings.");
Console.WriteLine("Enter first string to match:");
string first = Console.ReadLine();
Console.WriteLine("Enter second string to match:");
string second = Console.ReadLine();
Console.WriteLine("Is it possible to match: {0}", IsMatchPossible(first, second) ? "Yes" : "No");
public static bool IsMatchPossible(string first, string second)
if(string.Equals(first, second))
bool isMatchPossible = false;
if(first.Length < second.Length)
else if(first.Length == second.Length)
return IsEqualChars(first, second);
for(int i = 0; i < first.Length; i++)
isMatchPossible = i < second.Length
? (first[i] == second[i] || (Char.IsLower(first[i]) ? Char.ToUpper(first[i]) == second[i] : false))
if(!isMatchPossible && Char.IsLower(first[i]))
first = first.Remove(i, 1);
if(first.Length == second.Length)
return IsEqualChars(first, second);
public static bool IsEqualChars(string first, string second)
bool isMatchPossible = false;
if(first.Length == second.Length)
isMatchPossible = first[i] == second[i] || (Char.IsLower(first[i]) ? Char.ToUpper(first[i]) == second[i] : false);
}while(i < first.Length && isMatchPossible);