Я попробовал вызов на edabit.com. Это про "странные пары". Поэтому задача состоит в том, чтобы вернуть true, если «первая буква 1-й строки = последняя буква 2-й строки. Последняя буква 1-й строки = первая буква 2-й строки». ... также возвращает true, если обе строки равны нулю.
Кто может определить разницу? Заранее спасибо.
Моя попытка:
public class Program
{
public static bool IsStrangePair(string str1, string str2)
{
if (str1[0] == str2[str2.Length - 1] && str2[0] == str1[str1.Length - 1])
return true;
if (str1 == "" && str1 == str2)
return true;
return false;
}
}
Их ответ:
using System.Linq;
public class Program
{
public static bool IsStrangePair(string str1, string str2)
{
if(string.IsNullOrEmpty(str1) || string.IsNullOrEmpty(str2))
{
return str1 == str2;
}
return str1.First() == str2.Last()
&& str2.First() == str1.Last();
}
}
Я не могу определить разницу. Может кто-нибудь сказать мне, почему мое решение создает исключение IndexOutOfRangeException, а их нет? Мое решение работает в целом, кроме двух случаев. К сожалению, я не вижу, в каких случаях это происходит, и я не понимаю, при каких обстоятельствах возникнет эта ошибка.