题目描述
给出字符串S和字符串T,现在你要把S的某一个字符和T的某一个字符交换,使得交换之后的S至少要有三个连续相同的字符,交换之后的T也要有三个连续相同的字符。问有多少种不同的交换方式。
输入
第一行,一个字符串S。S只含有‘R’、‘G’、‘B’三种字符,长度不超过50,不小于3。而且S任意两个相邻的字符都不相同。
第二行,一个字符串T。T只含有‘R’、‘G’、‘B’三种字符,长度不超过50,不小于3。而且T任意两个相邻的字符都不相同。
输出
一个整数,满足要求的不同交换方式的数量。
思路
暴力模拟
var
a:array[1..3] of string=('RRR','GGG','BBB');
i,j,k,n,m,x,y,l,l1:longint;
s,st,q,p:string;
f,fl:boolean;
begin
assign(input,'a.in'); reset(input);
assign(output,'a.out'); rewrite(output);
readln(s);
readln(st);
l:=length(s);
l1:=length(st);
for i:=1 to l do
for j:=1 to l1 do
begin
q:=s; p:=st;
q[i]:=st[j];
p[j]:=s[i];
f:=false; fl:=false;
for k:=1 to 3 do
begin
if pos(a[k],p)<>0 then f:=true;
if pos(a[k],q)<>0 then fl:=true;
end;
if (f=true) and (fl=true) then inc(x);
end;
writeln(x);
end.
Comments NOTHING