В выходном параметре процедуры символ '*' означает верно поставленную скобку. Символ '?' стоит на месте открывающей скобки, которой не хватает закрывающей. '!' - неправильно поставленная закрывающая скобка
Категория: Delphi/Pascal
2013-03-25 19:49:04
code: #pascal
Program String69; Procedure checkbrackets(var s:string;ob,cb:char); Var i,Count:integer; Begin While pos(ob,s) <> 0 do Begin count:=0; For i:=pos(ob,s) to length(s) do Begin If s[i] = ob then inc(count) Else If s[i] = cb then dec(count); If count = 0 then break; End; If count = 0 then Begin insert('*',s,pos(ob,s)); delete(s,pos(ob,s),1); insert('*',s,i); delete(s,i+1,1); End Else Begin insert('?',s,pos(ob,s)); delete(s,pos(ob,s),1); End; End; While pos(cb,s) <> 0 do Begin insert('!',s,pos(cb,s)); delete(s,pos(cb,s),1); End; End; Var a:string; Begin readln(a); checkbrackets(a,'(',')'); If (pos('!',a) = 0) And (pos('?',a) = 0) Then writeln(0) Else If (pos('!',a) <> 0) And (pos('?',a) = 0) Then writeln(pos('!',a)) Else writeln(-1); End.
автор: Mr.Y
Поделиться: