連接:http://codeforces.com/contest/1186/problem/C
題意:給你一個較長字符串a以及一個較短字符串b,在a中取與b長度相等的子串,比較子串與b字符串中有幾組字符不一樣的個數是偶數個的。
思路;首先字符串都是由0 1組成的,可以用異或來求,(兩個數字異或,相同爲 0 ,不同爲 1 ,兩次異或同一個數字,相當於沒有異或過該數字)
#include <bits/stdc++.h>
using namespace std;
char s[N],d[N];
int main()
{
scanf("%s%s",s,d);
int len1=strlen(s);
int len2=strlen(d);
int ans=0;int sum=0;
for(int i=0;i<len2;i++)
{
ans^=s[i]^d[i];
}
if(ans%2==0)
sum++;
for(int i=len2;i<len1;i++)
{
ans^=s[i-len2]^s[i];
if(ans%2==0)
sum++;
}
cout<<sum;
}