字符串

小熊有一个由小写英文字母组成的字符串s = s1s2...sn。小熊想要计算s中有多少子串包含字符串“bear”,也就是找出满足字符串x(i, j)= sisi+1…s包含至少一个字符串“bear”的     (i, j)对数(1≤i≤j≤n)。

字符串x(i,j)包含字符串“bear”定义为存在一个整数k(i≤k≤j-3),满足sk=b,sk+1=e,sk+2=a,sk+3=r。

请帮助小熊解决这个问题。

分析:水题==(数据太小,直接暴力)

var
  i,ans,j:longint;
  s1:string;
  s:ansistring;

begin
  assign(input,'string.in');reset(input);
  assign(output,'string.out');rewrite(output);
  readln(s);
  for i:=1 to length(s)-3 do
    begin
      s1:='';
      for j:=i to i+3 do
        s1:=s1+s[j];
      if s1='bear' then
        ans:=ans+(i*(length(s)-i-2));
  end;
  writeln(ans);
  close(input);close(output);
end.

你可能感兴趣的:(训练题)