怎么衡量一段字符串是否包含子集,本来想用set,再用contain()函数来判断,是否包含,其实不必要;
注意题目题目特殊性:都是字符,
故可用一个256长的数组a表示集合中元素,遍历某字符串,遇到集合中元素x则:a[x]++; 然后判断a[x1],a[x2]...是否全非零即可判断!!完成isAllExist(start,end);
start=end=START
result=false;
while(ture)
{
temp=false;
while(!isAllExist(start,end)&&end<=END)//寻找第一个包含所有目标集合元素的字符串xxx
end++;
while(isAllExist(start,end))//寻找上面xxx中包含所有集合元素的最短字符串
{start++;temp=ture;}
if(end-start+2>minLength&&temp)
{
minLength=..;
起始记录;
result=ture;//找到了
}
if(end>END)
break;
}