早教吧作业答案频道 -->其他-->
pascal 括号配对问题假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如(〔 〕())或〔(〔 〕〔 〕)〕等为正确的匹配,〔(〕)或(〔 〕( )或 (()))均为错
题目详情
pascal 括号配对问题
假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如(〔 〕())或〔(〔 〕〔 〕)〕等为正确的匹配,〔(〕)或(〔 〕( )或 (()))均为错误的匹配.
现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?
输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”.
输入一个字符串:
〔(〔〕〔〕)〕
输出:
OK
var
a:string;
i,j:integer;
now:array[1..40]of char;
l:integer;
ans:integer;
top:integer;
begin
read(a);
l:=length(a);
ans:=0;
top:=0;
if (a[1]=')') or (a[1]=']') then
begin
ans:=1;
write('Wrong');
end;
while (a[i]' ') and (ans1) do
begin
if (a[i]='(') and (a[i]='[') then
begin
top:=top+1;
now[top]:=a[i];
end;
if (a[i]=')') then
if now[top]='(' then
top:=top-1
else
begin
write('wrong');
ans:=1;
end;
if (a[i]=']') then
if now[top]='[' then
top:=top-1
else
begin
write('Wrong');
ans:=1;
end;
i:=i+1;
end;
if ans=0 then write('OK');
end.
哪里错了?
假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如(〔 〕())或〔(〔 〕〔 〕)〕等为正确的匹配,〔(〕)或(〔 〕( )或 (()))均为错误的匹配.
现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?
输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”.
输入一个字符串:
〔(〔〕〔〕)〕
输出:
OK
var
a:string;
i,j:integer;
now:array[1..40]of char;
l:integer;
ans:integer;
top:integer;
begin
read(a);
l:=length(a);
ans:=0;
top:=0;
if (a[1]=')') or (a[1]=']') then
begin
ans:=1;
write('Wrong');
end;
while (a[i]' ') and (ans1) do
begin
if (a[i]='(') and (a[i]='[') then
begin
top:=top+1;
now[top]:=a[i];
end;
if (a[i]=')') then
if now[top]='(' then
top:=top-1
else
begin
write('wrong');
ans:=1;
end;
if (a[i]=']') then
if now[top]='[' then
top:=top-1
else
begin
write('Wrong');
ans:=1;
end;
i:=i+1;
end;
if ans=0 then write('OK');
end.
哪里错了?
▼优质解答
答案和解析
首先 建议用for循环写 for i:=1 to length(a) do
还有 在循环中输出‘Wrong’后最好 break;
致命之处在于 if语句 if (a[i]='(') and (a[i]='[') 应该是 if (a[i]='(') or (a[i]='[')
同时 第二个 ‘wrong’ 应是 ‘Wrong’
还有 在循环中输出‘Wrong’后最好 break;
致命之处在于 if语句 if (a[i]='(') and (a[i]='[') 应该是 if (a[i]='(') or (a[i]='[')
同时 第二个 ‘wrong’ 应是 ‘Wrong’
看了 pascal 括号配对问题假...的网友还看了以下:
1.墨为黑土〔〕2.衣不如新〔〕3.莺莺燕燕翠翠红红处处融融洽洽〔对联,此为上联,求下联.1.墨为 2020-04-12 …
pascal 括号配对问题假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如(〔 2020-05-16 …
水稻的迟熟与早熟是一对相对性状,迟熟受基因E控制,早熟受基因e控制.1,EE*ee,F1的基因型是 2020-05-17 …
打成语:〔〕衣〔〕食兴〔〕安〔〕口〔〕心〔〕头〔〕脚〔〕成语:〔〕衣〔〕食兴〔〕安〔〕口〔〕心〔〕 2020-05-21 …
智慧屋〔填空〕海涌银为郭,〔〕〔〕,千里共婵娟.〔〕,燕山月似钩 2020-06-05 …
Thefactoryopenedtwentyyearsago等,英语同义句转换.Thefactor 2020-06-06 …
凡韵头或韵母是〔ü〕的韵母叫“撮口呼”如韵母〔ü〕、〔üe〕、〔ün〕等.2撮口呼是主要元音为y和 2020-06-08 …
这些成语怎么添?这些成语由前后两个句子组成,前后两句有相反或补充的意思!〔1〕前门〔 〕〔 〕,后 2020-06-27 …
在5*5的表格中,每格填上一个数字后,使每一行构成等差数列,每一列构成等比数列1 〔〕 2 〔〕〔 2020-06-27 …
知道祖国的山河,知道的来帮忙回答几道题四大名楼:()、〔〕、〔〕、〔〕五岳:〔〕、〔〕、〔〕、〔〕 2020-07-03 …