我真的对这个问题感到困惑。只是为了澄清它不是功课,而是面试时提出的问题。我尝试了很多只是想知道如何做,但无法这样做
这是问题所在
假设它们是一个字符串
"Patient Bond is the best bond in the world."
现在我希望在不使用内置函数和维护案例的情况下找到并反转 Patient 和 Bond 这个词。
输出现在应该是
"tneitaP dnoB is the best dnob in the world. "
我正在使用 c 但它在我的脑海中如何做到这一点。所以我切换到 C# 但结果是一样的。
所以任何人都可以指导我,或者如果编写代码更好。
我从某个时候开始就成为会员,我知道堆栈溢出并不能为我解决整个解决方案,而只是帮助我解决问题。但真的,我被这个问题困住了,不知道该怎么做。所以请帮帮我
提前致谢。
编辑:
说真的,我不知道该怎么做。好的,不要解决这个问题,但也许有人可以就如何做到这一点给出一个想法。
编辑 2
现在,这是一个完美运行的解决方案,但仍然有一些内置功能,我仍在对它们进行编码,但暂时是为了再次打开问题。现在的问题是可以通过其他方法来完成吗?这是我想出的。
class Program
{
static void Main(string[] args)
{
string ret = "";
string ar = "Patient Bond is the best bond";
foreach (string bar in ar.Split2(" "))
{
if (bar.ToLower() == "patient" || bar.ToLower() == "bond")
ret = ret + StringExtensions.ReverseMe(bar) + " ";
else
{
ret = ret + bar + " ";
}
}
Console.WriteLine(ret);
Console.ReadLine();
}
}
public static class StringExtensions
{
public static IEnumerable<string> Split2(this string source, string delim)
{
// argument null checking etc omitted for brevity
int oldIndex = 0, newIndex;
while ((newIndex = source.IndexOf(delim, oldIndex)) != -1)
{
yield return source.Substring(oldIndex, newIndex - oldIndex);
oldIndex = newIndex + delim.Length;
}
yield return source.Substring(oldIndex);
}
public static string ReverseMe(string abc)
{
StringBuilder sb = new StringBuilder();
int i = abc.Length - 1;
while (i != -1)
{
sb.Append(abc[i--]);
}
string sbstring = sb.ToString();
return sbstring;
}
}
我尊重堆栈溢出,因为它让我学到了很多我无法拥有的东西。我要说的是,如果有人寻求帮助,不要只是嘲笑他们说你没有技能尝试帮助他们。我也这样做,并希望其他人也这样做。如果我听起来有点苛刻,我很抱歉。