MS面接問題のテスト
3755 ワード
1、大きさのある文字、数字からなる文字列を並べ替え、例えばEBa 37-->37 BEa
2、入力が水仙状かどうかを判断する.例えば66566、2 b 22 b 2は、123321 kは
3、変換2進数、8進数、16進数で表される数字をDecimalタイプに変換し、任意に言語を選択し、言語内部で実現するタイプ変換関数/方法を使用してはならない
使用する場合.NETが提供する変換則:Console.Write(Convert.ToInt32("101", 8));
4、1つの配列の重複要素を取り出して配列の末尾まで
(1)繰り返しを配列の末尾に置く
(2)重複するすべての文字を配列の末尾に置く
string inputs = "EBa37";
char[] result = inputs.ToCharArray();
char copyInputs;
for (int i = 0; i < result.Length - 1; i++)
{
for (int j = i; j < result.Length; j++)
{
if (result[i] > result[j])
{
copyInputs = result[j];
result[j] = result[i];
result[i] = copyInputs;
}
}
}
}
2、入力が水仙状かどうかを判断する.例えば66566、2 b 22 b 2は、123321 kは
string inputs = "123321k";
int stringLength = inputs.Length;
bool isFlower = true;
for (int i = 0; i < stringLength / 2; i++)
{
if (inputs[i] != inputs[stringLength - i - 1])
{
isFlower = false;
break;
}
}
3、変換2進数、8進数、16進数で表される数字をDecimalタイプに変換し、任意に言語を選択し、言語内部で実現するタイプ変換関数/方法を使用してはならない
使用する場合.NETが提供する変換則:Console.Write(Convert.ToInt32("101", 8));
static void ConvertType(string value, int type)
{
double currentType = Convert.ToDouble(type.ToString());
decimal hello = 0;
int powIndex = -1;
for (int i = value.Length - 1; i >= 0; i--)
{
powIndex++;
if (Convert.ToDouble(value[i].ToString()) != 0)
{
hello += (decimal)System.Math.Pow(currentType, powIndex);
}
}
Console.Write(hello);
}
4、1つの配列の重複要素を取り出して配列の末尾まで
(1)繰り返しを配列の末尾に置く
string stringInputs = "benqbqcbqs";
char[] userChar = stringInputs.ToCharArray();
List<string> list = new List<string>();
StringBuilder sbRepeateObject = new StringBuilder(userChar.Length);
string userObject = "";
for (int i = 0; i < userChar.Length; i++)
{
userObject = userChar[i].ToString();
if (!list.Contains(userObject))
{
list.Add(userObject);
}
else
{
sbRepeateObject.Append(userObject.ToString());
}
}
list.Add(sbRepeateObject.ToString());
(2)重複するすべての文字を配列の末尾に置く
string stringInputs = "benqbqcbqs";
string repeatString = "";
string originString = "";
string currentString = "";
for (int i = 0; i < stringInputs.Length; i++)
{
currentString = stringInputs[i].ToString();
if (Regex.Matches(stringInputs, currentString).Count == 1)
{
originString += currentString;
}
else
{
repeatString += currentString;
}
}
Console.WriteLine(originString + repeatString);