public string min(string a, string b)
{
int i = 0;
string c = "";
int x = b.Length - 1;
while (a.IndexOf(b.Substring(i, 1)) != -1 && (i<x))
{
c = a.Replace(b.Substring(i, 1), "");
i++;
}
return c;
}
不仔细看还不知道里面问题一堆啊,
先看这句:
nt x = b.Length - 1;
---->这一句就决定while中只能i=0,1 问题为
差了一个值2
再看下一句:
hile (a.IndexOf(b.Substring(i, 1)) != -1 && (i<x)) 你这里的判断顺序问题出来了---->原本意思为
先为b中的某个在a中是否存在,再判断i是否出了a的长度大小..这是一个错误的..
下面还有:
c = a.Replace(b.Substring(i, 1), "");
-->这一句就是以""还提换b中存在的字符传给c,--->
但是这个c永运为a中只对b中的某个字符提换一次的结果.
问题差不多这么多了:
public string min(string a, string b)
{
int i = 0;
string c = a //--->初如为a 的值
int x = b.Length; //-->若为b.Length-1,则下面的i<x改为i<=x;
while ((i<x)&& c.IndexOf(b.Substring(i, 1)) != -1) //变换一下位置,只需在c中判断
{
c = c.Replace(b.Substring(i, 1), ""); //递归删除在b中的字符
i++;
}
return c;
}