当前位置: 首页 > news >正文

每日算法练习Day03

题目来源

U535982 C-小梦的AB交换 - 洛谷

题目描述

小梦有一个长度为 2∗n 的 AB 串 s,即 s 中只包含 "A" 和 "B" 两种字符,且其中恰好有 n 个 "A" 和 n 个 "B"。

他可以对 s 执行以下操作:

∙ 选择 i,j (1≤i,j≤2⋅n,i=j),并交换 si​ 和 sj​。

他想知道,需要至少多少次操作,才能使得 s 满足相邻的字符不相同,请你帮他算一算吧。

输入格式

本题有多组测试数据。

输入的第一行包含一个正整数 T,表示数据组数。

接下来包含 T 组数据,每组数据的格式如下:

第一行一个正整数 n,表示 s 长度的一半。

第二行一个长度为 2∗n 的字符串 s,保证只由 "A", "B" 两种字符构成。

输出格式

对于每组测试数据:

在单独的一行输出一个整数,表示最少进行的操作次数。

输入输出样例

输入 #1复制

2 3 AAABBB 3 ABAABB

输出 #1复制

1 1

说明/提示

【样例 1 解释】

交换 s2​=A 和 s5​=B,得到 s= "ABABAB",满足题意,一次交换即可。

【数据范围】

令 N 表示 T 组数据中 n 的总和。

对于 50% 的数据有:T=1,1≤N≤3。

对于所有的测试数据有: 1≤T≤100,1≤N≤106。

题解

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); // 读取测试数据组数 while (T-- > 0) { int n = sc.nextInt(); // 每组数据的n String s = sc.next(); // 每组数据的字符串s // 构建两种合法的交替字符串: // 形式1:B开头,交替排列(B A B A...) StringBuilder pattern1 = new StringBuilder(); // 形式2:A开头,交替排列(A B A B...) StringBuilder pattern2 = new StringBuilder(); for (int i = 0; i < 2 * n; i++) { if (i % 2 == 0) { // 偶数位(从0开始) pattern1.append('B'); pattern2.append('A'); } else { // 奇数位 pattern1.append('A'); pattern2.append('B'); } } // 计算原字符串与两种形式的差异数,交换次数=差异数/2 int cost1 = calcDiff(s, pattern1.toString()); int cost2 = calcDiff(s, pattern2.toString()); // 输出最小交换次数 System.out.println(Math.min(cost1, cost2)); } sc.close(); } // 计算原字符串与目标模式的差异数,返回交换次数(差异数/2) private static int calcDiff(String s, String pattern) { int diff = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) != pattern.charAt(i)) { diff++; } } return diff / 2; }

1. 先获取数据组数

2.然后我们可以用循环来获取数据

3.建立两种模式来实现这个字母不同的结果,最后再比较这个操作过后的字符串和原来的字符串的区别即可

注释:

s.charAt(i)是获取数组中对应的字母

http://www.jsqmd.com/news/315931/

相关文章:

  • 2026深圳塑胶模具采购不踩雷!热门的电子烟模具厂家、镜头模具厂家优选,精密塑胶模具厂家深耕深圳注塑全品类
  • 2026新疆建筑防水材料实力品牌综合评估报告
  • 2026年新疆工程外加剂实力厂家全面评测与推荐
  • 2026年武汉白沙洲粮油批发采购趋势与优质供应商推荐
  • 2026年生鲜超市粮油采购可靠供应商综合评估报告
  • **AI漫剧生成工具2025推荐,解锁高效创作与视觉叙事新体
  • 2026年近期赤峰探水钻机源头厂家怎么选
  • 北京火烧板厂家怎么选?2026年实力厂商盘点
  • 2026聚氨酯地坪漆厂家推荐:聚氨酯砂浆地坪厂家+聚氨酯地坪漆品牌+聚氨酯地坪厂家推荐全攻略
  • 2026年浮法白玻诚信服务商综合推荐与选型指南
  • 2026年湖北浮法白玻采购指南:优质服务商综合评测与选型策略
  • 2026年LOWE玻璃优质供应商深度评测与采购指南
  • 2026食品车间聚氨酯地坪厂家:食品车间地坪厂家+食品车间专用地坪公司+食品车间地坪生产厂家+食品厂地坪公司甄选指南
  • 2026年武汉油砂玉砂玻璃服务商综合实力与选型指南
  • 灵感不再掉线:Rokid 智能眼镜,如何把音乐创作变成随身工作站?
  • 大脑陷阱:为何你总在得失间犯蠢(想自己有的,理性思考:想象失去后 是否能承受)
  • 前后端分离在线考试系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 2026年兰州快消品软件公司深度评测与选型指南
  • 2026年初合肥一站式拼多多代运营公司综合评估报告
  • 2026年济南润滑油供应商综合评测与选型指南
  • 2026年济南优质机油品牌选购指南:数据解析与实力厂商推荐
  • 自指AI安全协议草案:为具备自我认知的智能系统建立存在边界V0.1
  • web学习练习题
  • 咸宁奢侈品回收实力公司评测:2026年市场格局与选型指南
  • 2026年山东聚丙烯腈纤维实力厂家综合评测与选型指南
  • 2026年温州封口机厂家选购指南与TOP5推荐
  • 2026年初安徽减速机源头厂家综合评测与选择指南
  • 当 FPGA 遇上 Python:Glasgow 如何玩转数字接口(开源硬件 软件)
  • 工业油服务商综合评估与选型指南:数据驱动的采购决策
  • 2026上海半包装修设计深度评测:避坑指南与品牌推荐