【发布时间】:2012-06-19 22:35:55
【问题描述】:
背景:我被邀请参加一家知名公司的面试,并在被告知我未能通过该职位的面试之前被问到以下问题(C#,mvc3,razor)。 我真的很想知道如何解决这个问题。
问题:"Write a method that takes a char array, trims whitespace, and returns the same array." 经过一番思考,有人告诉我用“\o”替换空格。
我开始:
public static char[] Trim(char[] c)
{
for (int i = 0; i < c.Length; i++)
{
if (c[i] == '\r' || c[i] == '\n' || c[i] == '\t')
{
c[i] = '\o';
}
}
}
有人告诉我必须使用相同的数组,不能将其放入列表并调用ToArray()。但是我认为如果数组保持相同的大小,就不可能“修剪它”。
【问题讨论】:
-
这听起来像是一个措辞不好的问题......有些面试官故意问他们,看看你是否愿意提问。只是一点面试技巧。当我采访亚马逊时,他们多次改变主意,只是想看看我是否会生气。
-
好吧,别失望。在多个层面上,这对我来说似乎是一个糟糕的面试问题。 (1. 使用/返回相同的字符数组做作和荒谬 2. 首先使用字符数组很愚蠢 3. 试图在 C# 中硬塞以空终止字符串的想法是令人讨厌的 4. 这并不是什么大问题根本要解决的问题;只是一个试图困住你的“陷阱”问题。)
-
@Pheonixblade9 我同意 - 措辞很奇怪,我猜目标是让受访者提出问题并谈论问题。提出问题以解决问题“背后”的真正问题可能是这里的目标,而不是代码解决方案......
-
@Pheonixblade9 我同意他可能想看看我问了什么问题。相信我,我做到了,这似乎更激怒了他。有人问我这个问题我并不生气,我想知道为什么我通过了人力资源和技术电话,被要求出来面试,却被告知我在一个问题后被拒绝了。
-
...他们认真拒绝了你没有回答这个措辞糟糕的问题?你可能不想为他们工作,六个月后你的头发就会全白。