展开全部
program count;
const
infile= 'longz.in';
outfile= 'longz.out';
var
str:string;
l:integer;
begin
assign(input,infile); \\与文件建立联系
assign(output,outfile);
reset(input);
rewrite(output);
readln(str); \\读入字符串
close(input);
l:=length(str); \\ 记录字符串长度
ans:=1; \\对符合要求的最长字符串赋初值为1
for i:=1 to l-1 do
t:=1; \\对第i个位置字符开头的字符串开始记录最长符合要求的长度
f:=true;
for j:=i to l-1 do begin \\从第i个开始往后逐个看是否符合要求
if (f and (ord(str[j])<ord(str[j+1])) ) then inc(t) else f:=false; \\f表示之前的均满足,如出现一个不满足则f赋值为false,则不会再对t进行累加。
end;
if ans<t then ans:=t; 如果t比最大值大,则把最大值复制为t
end;
writeln(ans);
close(output);
end.
特地为你敲了一遍,没编译,可能有小错误,见谅啦~~
觉得好就给分吧~~
const
infile= 'longz.in';
outfile= 'longz.out';
var
str:string;
l:integer;
begin
assign(input,infile); \\与文件建立联系
assign(output,outfile);
reset(input);
rewrite(output);
readln(str); \\读入字符串
close(input);
l:=length(str); \\ 记录字符串长度
ans:=1; \\对符合要求的最长字符串赋初值为1
for i:=1 to l-1 do
t:=1; \\对第i个位置字符开头的字符串开始记录最长符合要求的长度
f:=true;
for j:=i to l-1 do begin \\从第i个开始往后逐个看是否符合要求
if (f and (ord(str[j])<ord(str[j+1])) ) then inc(t) else f:=false; \\f表示之前的均满足,如出现一个不满足则f赋值为false,则不会再对t进行累加。
end;
if ans<t then ans:=t; 如果t比最大值大,则把最大值复制为t
end;
writeln(ans);
close(output);
end.
特地为你敲了一遍,没编译,可能有小错误,见谅啦~~
觉得好就给分吧~~
展开全部
2L SB.
3L 竟然复杂度 O(N^2)靠。
好了,
你只要对序列扫一遍即可,
设字符串为S,先设S[0]=CHR(255)
若S[I]>S[I-1]则NOW=NOW+1;
否则
{ 如果NOW>ANS则ANS=NOW NOW :=1}
3L 竟然复杂度 O(N^2)靠。
好了,
你只要对序列扫一遍即可,
设字符串为S,先设S[0]=CHR(255)
若S[I]>S[I-1]则NOW=NOW+1;
否则
{ 如果NOW>ANS则ANS=NOW NOW :=1}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
宽搜吧,对你来说更好理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可以用搜索啊,一个个地试。看你连宽搜都不会,首先去看看宽度优先搜索的教程把
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询