简单问题,50分给一人,留下的其它人分(先给出方法的50分)

masterjames 2008-10-16 10:29:05
有一字符串 如:STR1:='1.02 aaa bb c ddd bm' 中间用空格分开,但空格的数目不相同,
如,1.02和 AAA 中间可能有3个,而BB与AAA中只有一个. 求一简单的算法,将以上
数据分开逐个添加到TStringList的变量list 中
50分给一人,留下的其它人分(先给出方法的50分),通过者立马给分.

...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhengwinner 2008-10-17
  • 打赏
  • 举报
回复
Function TCountWord.ExtractWords(const S: string): TStringDynArray;
type
TStates = (ScanNormal,ScanQuoted,ScanPunctuation);
const
WordDelim = ' !<>[](){},./?;~:-+=*@#$%^&"12345567890';
var
State: TStates;
Inx: integer;
Ch: Char;
CurWord: string;

procedure AddToList(Const aWord: string);
var
aLen: integer;
begin
aLen := Length(Result);
SetLength(Result,aLen+1);
Result[aLen] := lowerCase(aWord);
end;
begin
SetLength(Result,0);
State := ScanNormal;
CurWord :='';
//读入串中所有字符
for Inx := 1 to Length(S) do
begin
//获取下一个字符
Ch := S[Inx];
//对于状分情况处理
case State of
ScanNormal:
begin
if Pos(Ch,WordDelim)<>0 then
begin
if (CurWord<>'') then
begin
AddToList(CurWord);
CurWord := '';
end;
state := ScanPunctuation;
end else
begin
CurWord := CurWord+Ch;
end;
end;
ScanQuoted:
begin
CurWord := CurWord+Ch;
State := ScanNormal;
end;
ScanPunctuation:
begin
if Pos(Ch,WordDelim) = 0 then
begin
CurWord := Ch;
State := ScanNormal;
end;
end;

end;
end;
if CurWord<>'' then
AddToList(CurWord);
end;
liuhengwinner 2008-10-16
  • 打赏
  • 举报
回复
这么做的话还得去除空格!有的间隔是两个或三个空格!不如状态机灵活!
liangpei2008 2008-10-16
  • 打赏
  • 举报
回复

Uses
IdStrings;
var
s: String;
List: TStringList;
begin
s := '1.02 aaa bb c ddd bm' ;
List := TStringList.Create;
SplitColumns(s,List,' ');
List.Free;
end;
liuhengwinner 2008-10-16
  • 打赏
  • 举报
回复
用状态机,详见 Delphi 算法与数据结构一书!我写过的,现在手边没代码,明天粘给你!
iamduo 2008-10-16
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_40ac71670100anjg.html
liangpei2008 2008-10-16
  • 打赏
  • 举报
回复

var
s: String;
List: TStringList;
begin
s := '1.02 aaa bb c ddd bm' ;
List := TStringList.Create;
ExtractStrings([' '],[' '],PChar(s),List);
Showmessage(List[4]);
List.Free;
end;
JeffChung 2008-10-16
  • 打赏
  • 举报
回复

var
str1:string;
list:TStringList;
i:integer;
begin
str1:='1.02 aaa bb c ddd bm' ;
list := TStringList.Create;
list.DelimitedText := str1;
memo1.Lines.AddStrings(list);
list.Free;
end;
JeffChung 2008-10-16
  • 打赏
  • 举报
回复
delimitedText
有限责任公司的股权配办法 我所关心的是股权配对公司长期发展的影响。 根据公司法,公司有两种:有限责任公司和股份有限公司,两者最低起始资金别为10万元和1000万元,显然,以自有资金创业的应采取有限责任公司。 但公司法规定有限责任公司在注册时资金就要全部到位,这样发起人的股权配就确定了,且占满了100%。另外有限责任公司中只出现股权,而没有股份的概念。 我的问题是:对于高科技开发公司,股权毫无疑问是激励和吸引员工的有效方法,但发起人占据了全部股权,后加入者如何获得股权? 另外这里转帖一篇SGI和NETSCAPE的创始人JimClark的做法,不知这种办法是否适合我国的有限责任公司。 -----------------------------------   在任何公司的创业期,财产配计划与支出计划一样重要,这还包括比为投资者自己及少数其他早期雇员配股票更多的内容。多数企业家往往不能过多地考虑到正在进行中的股权摊薄的需要。在我创建的最后几个公司中,我用了一个对雇员及投资者都公平的简单模型。   我的模型的综合目标是使公司的团队能在公司一旦上市以后获得公司近50%的股权。在第一轮融资中,公司必须集中足够的钱来获得一个明显的里程碑——当这些钱花掉以后公司将更有价值。同样,必须配足够的股票作为雇员基金,以发行给为达到这个里程碑所需的新的雇员。当里程碑达到后,钱和股票都应已经被消耗掉,并且应是雇员与投资者各50%的比例。   接下来的一轮资金应遵守同样的原则,让雇员股权数与为每个投资者计划好的摊薄数量相对应。   如何对50%的原始雇员股权进行配呢?企业家们常常过高地估计自己,而忽略了那些必需的雇员。我们在心底都知道在这样一个充满激烈竞争的互联网创业环境中,企业家自己占有公司绝大多数股权已是不可能的事情。我采用的模式认为企业家不一定要成为公司的CEO,因此,我将10%的股份配给这一职位。然后,把另外的股份再配给组织中的其它层次,每个层次总共占10%,这样所有的50%股份共管理梯队的四个层次。具体说就是,向CEO直接汇报的几个部门经理享其它的10%;向部门经理直接汇报的所有小组主管享其它的10%;同样的数量配给下一级人员。假设每一层5人直接向一个经理负责,这就有足够的股票给150个雇员,同时有10%的基金留下应付特殊的情况,例如一部原始股份给参与的创业者。   层次的多少,以及配给每一层次的数量会根据公司的原始价值而变化,但据我的经验,拥有一个150人上下的雇员是现实的,这意味着能够

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧