Description
给出两个字符串,要求用第一个字符串的前缀和第二个字符串的后缀组成新的字符串,问至多可以组成多少个不同的字符串
Input
输入两个长度不超过 105 的只由小写字母组成的字符串
Output
输出方案数
Sample Input
cat
dog
Sample Output
9
Solution
假设第一个字符串
S
的长度为
Code
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<ctime>
using namespace std;
typedef long long ll;
typedef pair<int,int>P;
const int INF=0x3f3f3f3f,maxn=100001;
int x[33],y[33];
char a[maxn],b[maxn];
int main()
{
freopen("concatenation.in","r",stdin);
freopen("concatenation.out","w",stdout);
while(~scanf("%s%s",a,b))
{
int n=strlen(a),m=strlen(b);
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
for(int i=1;i<n;i++)x[a[i]-'a']++;
for(int i=0;i<m-1;i++)y[b[i]-'a']++;
ll ans=(ll)n*m;
for(int i=0;i<26;i++)ans-=(ll)x[i]*y[i];
printf("%I64d\n",ans);
}
return 0;
}