如何知道一个有重复数据的数组中不相同数据的个数?
如一个数组 是这样的A_number(a,a,a,b,c,d,d,e)
我如何得到不同数据的个数为5
如一个数组 是这样的A_number(a,a,a,b,c,d,d,e)
我如何得到不同数据的个数为5
解决方案 »
- 在线求教:如何将DELPHI关键字定义为类属性?
- 如何自定义fastreport设计器 版本3.18
- 求救,存储过程的问题!
- 什么函数可以从字符串中给出指定子串的位置?或者可以拷贝字符串中指定字符之间的字串?
- 怎么将字符串中的*部分字符*替换掉?急!!(在线等待)
- 谁有D6中文版帮助??
- TDBcomboBox如何释放,在线等!!请高手指点
- TO qiubolecn(来自差生市): 是的,请教,你有这方面的资料吗?谢谢!
- 不为名不为利,只想创立一个delphi小组,在兴趣的进来!!!!!!!
- 怎么得到Timage的Picture.Data里的数据
- MDI类型窗体的登陆窗体如何制作?请高手赐教!
- 如何读取快捷方式(*.lnk)所指向的目标呢?
2 自己写代码
n:= length(A_Number);
for j:= 1 to length(A_Number)
for i:= 0 to j do
begin
if A_Number[i]=A_Number[j] then n--;
break;
end;
n为不同的数
2 用代码循环
n:=length(A_number);
for j:= 1 to length(A_number) do
for i:= 0 to j-1 do
if A_number[i]=A_number[j] then
begin
Dec(n);
break;
end;
n为所求
首先设置一个数组int tag[97..122],97也就是a,122也就是z,
初始化该数组tag[i]:=0;
然后遍历所有数据,将字符转换为整型,比如a转化为97,再将tag[i]++;
最后只要将tag[i]全部相加即可,这种算法针对字符型而言效率比楼上的要高一点,
特别对于比较多的数据处理而言
for j:= 1 to length(A_number) do
for i:= 0 to j-1 do
if A_number[i]=A_number[j] then
begin
Dec(n);
break;
end;
n为所求