求解高效算法:
比如有两个数组:
string v1 = "11,22,33,44,22";
string v2 = "11,55,66";
首先求解第一个算法:
去掉v1的重复数字,得到结果如下:string v1 = "11,22,33,44";然后求解第二个算法:
就是把没重复数据的v1跟v2比较,如果v1中的某个数据跟v2的某个数据相同的话,则v1中的这个数据要删除掉。结果如下:string v1 = "22,33,44";
比如有两个数组:
string v1 = "11,22,33,44,22";
string v2 = "11,55,66";
首先求解第一个算法:
去掉v1的重复数字,得到结果如下:string v1 = "11,22,33,44";然后求解第二个算法:
就是把没重复数据的v1跟v2比较,如果v1中的某个数据跟v2的某个数据相同的话,则v1中的这个数据要删除掉。结果如下:string v1 = "22,33,44";
static void Main(string[] args)
{
Console.WriteLine(GetString("11,22,33,44,22", "11,55,66"));
} static string GetString(string str1, string str2)
{
string[] t1 = str1.Split(',');
List<string> list = new List<string>();
foreach (string s in t1)
if (!list.Contains(s))
list.Add(s);
str1 = string.Join(",", list.ToArray());
t1 = str2.Split(',');
for (int i = 0; i < t1.Length; i++)
if (list.Contains(t1[i]))
list.Remove(t1[i]);
str1 = string.Join(",", list.ToArray());
return str1;
}
{
string[] t1 = str1.Split(',').Distinct().ToArray();
str1 = string.Join(",", t1);//第一步
string[] t2 = str2.Split(',');
var query = from s in t1
where Array.IndexOf(t2, s) < 0
select s;
str1 = string.Join(",", query.ToArray());//第二步
return str1;
}
{
string[] s1 = str1.Split(',');
string[] s2 = str1.Split(',');
List<string> list = new List<string>(s1).Distinct();
foreach (string s in s2)
{
if (list.Contains(s)) list.Remove(s);
}
return string.Join(",", list.ToArray());
}
string GetDistinct(string str1, string str2)
{
string[] s1 = str1.Split(',').Distinct().ToArray();
string[] s2 = str1.Split(',');
List<string> list = new List<string>(s1);
foreach (string s in s2)
{
if (list.Contains(s)) list.Remove(s);
}
return string.Join(",", list.ToArray());
}
string str1 = "11,22,33,44,22";
string str2 = "11,55,66"; List<string> list1 = new List<string>(str1.Split(','));
list1.Sort();
List<string> list2 = new List<string>(str2.Split(','));
List<string> list = new List<string>();
foreach (string s in list1)
{
if (!list2.Contains(s) && !list.Contains(s))
list.Add(s);
} Console.WriteLine(String.Join(",",list.ToArray()));
static void Main(string[] args)
{
int[] v1 ={ 11, 22, 33, 44, 22,77 };
int[] v2 ={ 11,55,66,44 };
List<int> result = new List<int>(); Array.Sort<int>(v1);
Array.Sort<int>(v2); int t=-1;
bool isInV2;
for (int i = 0; i < v1.Length; i++)
{
if (v1[i] == t) continue;
isInV2 = (Array.BinarySearch<int>(v2,v1[i])>=0);
if (!isInV2)
{
result.Add(v1[i]);
}
t = v1[i];
isInV2 = false;
} foreach (int i in result)
{
Console.WriteLine(i);//22,33,77
}
}
for(int i=0;i<5;i++)
{
if(FindString())
{ v1=CutString(); }
}