面试题
面试题
1. 以下是用C#实现找到数组中第二大的数字的算法:
int[] arr = { 10, 5, 20, 8, 12, 15 };
Console.WriteLine(f(arr));
static int f(int[] n)
{
	int max = n[0];
	int sec = n[0];
	foreach (var i in n)
	{
		if (i > max)
		{
			sec = max;
			max = i;
		}
		else if (i > sec && i != max)
		{
			sec = i;
		}
	}
	return sec;
}
2. 以下是一个用C#编写的函数,用来判断一个字符串是否是回文。
static bool f(string s)
{
	int left = 0;
	int right = s.Length - 1;
	while (left < right)
	{
		while (left < right && !char.IsLetterOrDigit(s[left])) left++;
		while (left < right && !char.IsLetterOrDigit(s[right])) right--;
		if (char.ToLower(s[left]) != char.ToLower(s[right])) return false;
		left++; right--;
	}
	return true;
}
3. 写一个函数,反转输入的字符串。
string input2 = "Hello";
Console.WriteLine(f(input2));
static string f(string s)
{
	char[] c = s.ToCharArray();
	Array.Reverse(c);
	return new string(c);
}