Why Did the Cow Cross the Road II (B)

Why Did the Cow Cross the Road II (B)

题目链接:nowcoder 24079

题目

在这里插入图片描述

题目大意

就是给你一个 AZ所有字符都出现两次字符串,要你求多少种字符交叉在了一起。
ABAB算是交叉在了一起,但是 ABBA并不算。

样例输入

ABCCABDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ

样例输出

1

样例解释

在此示例中,只有母牛A和B是交叉的。

思路

一道模拟。

其实题目就是要看多少种字符满足这个条件:在两个字符之间的区域有单独的字符存在,就是有一种字符只出现了一次。

那就按着题目模拟,就可以了。

代码

#include<cstdio>
#include<cstring>

using namespace std;

char c[101];
int size = 52, times[51], ans, l, r;

int main() {
	scanf("%s", &c);
	
	for (int i = 'A'; i <= 'Z'; i++) {
		l = -1;
		r = -1;
		for (int j = 0; j < size; j++)
			if (c[j] == i) {
				if (l == -1) l = j;
					else {
						r = j;
						break;
					}
			}
		
		memset(times, 0, sizeof(times));
		for (int j = l + 1; j < r; j++)
			times[c[j] - 'A']++;
		for (int j = 0; j < 26; j++)
			if (times[j] == 1) ans++;
	}
	
	printf("%d", ans / 2);
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值