急关于TSringList中查找不同值的有关问题,研究了半天没搞定
急,急,急,关于TSringList中查找不同值的问题,研究了半天没搞定
TStringList.Add('a')
TStringList.Add('b')
TStringList.Add('c')
TStringList.Add('a')
TStringList.Add('b')
TStringList.Add('c') 后,
TStringList中有6个值(a,b,c,a,b,c),如何知道TStringList 中只有三个(a,b,c)不同的值?只要求返回3
注意,还有这种情况
TStringList.Add('a')
TStringList.Add('a')
TStringList.Add('a')
要求返回值为1
------解决方案--------------------
帮顶
回复内容太短了!
------解决方案--------------------
帮顶
只知道比较笨的办法-遍历StringList
------解决方案--------------------
遍历归类
------解决方案--------------------
function calc_count(t:TStringList) :integer;
var
i,c:integer;
olds:string;
begin
t.sort;
c:=0;
olds:='';
for i:=0 to t.count-1 do
if olds<>t.strings[i] then
begin
inc(c);
olds:=t.strings[i];
end;
result:=c;
end;
------解决方案--------------------
没有现成的函数可用,只有自己写算法了
为什么不在插入之前就确保没有重复值呢?
------解决方案--------------------
排序,再循环strings[i],遇到与strings[i-1]不同则加一
TStringList.Add('a')
TStringList.Add('b')
TStringList.Add('c')
TStringList.Add('a')
TStringList.Add('b')
TStringList.Add('c') 后,
TStringList中有6个值(a,b,c,a,b,c),如何知道TStringList 中只有三个(a,b,c)不同的值?只要求返回3
注意,还有这种情况
TStringList.Add('a')
TStringList.Add('a')
TStringList.Add('a')
要求返回值为1
------解决方案--------------------
帮顶
回复内容太短了!
------解决方案--------------------
帮顶
只知道比较笨的办法-遍历StringList
------解决方案--------------------
遍历归类
------解决方案--------------------
function calc_count(t:TStringList) :integer;
var
i,c:integer;
olds:string;
begin
t.sort;
c:=0;
olds:='';
for i:=0 to t.count-1 do
if olds<>t.strings[i] then
begin
inc(c);
olds:=t.strings[i];
end;
result:=c;
end;
------解决方案--------------------
没有现成的函数可用,只有自己写算法了
为什么不在插入之前就确保没有重复值呢?
------解决方案--------------------
排序,再循环strings[i],遇到与strings[i-1]不同则加一