{1,2,2,2,3,3,4,4,5}处理后变成{1,6,6,8,5}期待高手点拨 非常感谢

解决方案 »

  1.   


    可能不是最佳算法,仅供参考:{可以是任意数字连接成的字符串,用逗号分隔}
    const SourceStr='1,2,2,2,3,3,4,4,5';procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j:Integer;
      TmpStr:string;
      sList:TStringList;
      Arr:array of string;
    begin
      sList:=TStringList.Create;
      try
      sList.DelimitedText:=SourceStr;
      SetLength(Arr,sList.Count);
      for i:=0 to sList.Count-1 do
      begin
        TmpStr:=sList.Strings[i];
        j:=sList.IndexOf(TmpStr);
        if (j=-1) or (j = i) then
          Arr[i]:=TmpStr
        else
          Arr[j]:=IntToStr(StrToInt(Arr[j])+StrToInt(TmpStr));
      end;  TmpStr:='';
      for i:=low(Arr) to high(Arr) do
      if Arr[i]<>'' then
         TmpStr:=TmpStr+','+Arr[i];
      delete(TmpStr,1,1);  showmessage(TmpStr);  finally
        sList.Free;
      end;
    end;