Content

给定一个长度为 \(n\) 的仅由 xX 组成的字符串,求使得字符串中 xX 的数量相等需要修改的次数,并输出修改后的字符串。

数据范围:\(2\leqslant n\leqslant 200,2\mid n\)。

Solution

首先得统计一下 x 的个数 \(num_x\) 和 X 的个数 \(num_X\),不难看出,答案就是 \(\dfrac{|num_x-num_X|}{2}\)。得到答案后再扫一遍把出现次数多的字符替换成出现次数少的字符,直到出现次数相等为止。

Code

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std; int len, numx, numX;
string s; int main() {
scanf("%d", &len);
cin >> s;
for(int i = 0; i < len; ++i) numx += (s[i] == 'x'), numX += (s[i] == 'X');
printf("%d\n", abs(numx - numX) / 2);
if(numx > numX)
for(int i = 0; i < len; ++i) {
if(s[i] == 'x') {
s[i] = 'X', numx--, numX++;
if(numx == numX) {cout << s; return 0;}
}
}
else if(numx == numX) {cout << s; return 0;}
else
for(int i = 0; i < len; ++i)
if(s[i] == 'X') {
s[i] = 'x', numx++, numX--;
if(numx == numX) {cout << s; return 0;}
}
return 0;
}

最新文章

  1. DevExpress v15.2.4帮助文档下载(全)
  2. August 1st, 2016, Week 32nd Monday
  3. FZU 2092 bfs+记忆化搜索
  4. MapReduce框架Partitioner分区方法
  5. 来TN公司两周的记录
  6. (转)浅谈.NET下的多线程和并行计算(一)前言
  7. iOS: 属性声明strong和retain竟然不一样
  8. UVA 10985 - Rings&#39;n&#39;Ropes(floyd)
  9. nc命令 (NetCat)
  10. Lua中的require(转)
  11. return *this和return this有什么区别?
  12. 通过git命令行从github或服务器上克隆、修改和更新项目
  13. java加减天数
  14. Oracle EBS AP 发票放弃行
  15. Canvas动画 位图缓存提高效率和对应的内存问题
  16. shell实例浅谈之一产生随机数七种方法
  17. bzoj 3924 [Zjoi2015]幻想乡战略游戏——动态点分治(暴力移动找重心)
  18. U盘安装Ubuntu 12.04成功后系统无法启动的原因及解决办法
  19. Murano Weekly Meeting 2016.05.10
  20. CURL抓取网页内容

热门文章

  1. 异常处理截止和UML图
  2. Codeforces 750E - New Year and Old Subsequence(线段树维护矩阵乘法,板子题)
  3. CF 786 E ALT
  4. 比对软件Blast,Blast+,Diamond比较
  5. c6和c7
  6. xmake v2.6.1 发布,使用 Lua5.4 运行时,Rust 和 C++ 混合编译支持
  7. CPF C#跨平台UI框架发布安卓端预览版
  8. Hadoop入门 概念
  9. Learning Spark中文版--第四章--使用键值对(1)
  10. promise.all的应用场景举例