TopCoder网络连接不是很好,尝试了各种方法后,用Edge浏览器+全局代理连上了。似乎不用代理也可以。

  • 网址:https://arena.topcoder.com
  • 刷题点击上边栏的Practice Problem,点击题目后进入页面需要加载很长时间。如果出现Disconnect之后点继续,继续在界面等待…
  • 题目加载完成后,测试提交较为顺利。网页版编辑器机支持自定义测试。
  • 需要根据题目的要求实现相应方法。

题目:ABBA

判断一个AB组成的字符串是否可以通过末尾加A、翻转后加B变换成为另一个字符串。

一般这种字符串修改的容易想到DP。不过这道题主要方法应该是贪心。首先计算出两个字符串的AB个数差值,然后根据B的差值判断翻转的次数。可以确定原字符串经过翻转后,前后跟随的B的个数和添加A的位置。与目标字符串进行比对即可。

#include <bits/stdc++.h>using namespace std;
typedef long long LL;class ABBA{public:string canObtain(string initial, string target){int len1 = initial.length();int len2 = target.length();int cntA = 0, cntB = 0;for(char a : initial){if(a == 'A'){cntA--;}else{cntB--;}}for(char a : target){if(a == 'A'){cntA++;}else{cntB++;}}if (cntB < 0 || cntA < 0) {return "Impossible";} else {int cntL = cntB / 2;int cntR = cntB - cntL;bool rev = cntB & 1;if (rev) {int p = len2 - 1;if (!cntR && initial[0] != 'A' && target[0] == 'A') return "Impossible";while (cntR) {cntR -= target[p] == 'B';p--;}if (p - len1 + 1 < 0) return "Impossible";for (int i = 0; i < len1; ++i) {int pp = p - i;if (target[pp] != initial[i]) return "Impossible";}return "Possible";}else{int p = 0;if (!cntR && initial[0] != 'A' && target[0] == 'A') return "Impossible";while (cntL) {cntL -= target[p] == 'B';p++;}if (p + len1 > len2) return "Impossible";for (int i = 0; i < len1; ++i) {int pp = p + i;if (target[pp] != initial[i]) return "Impossible";}return "Possible";}}}
};

TopCoder提交测试相关推荐

  1. 当一个软件新版本提交测试时要有,如何改善没完没了的软件测试版本?

    51Testing软件测试网1B5~A[-B+FfZg 开发人员3天出1个新的软件版本?1天1个新的版本?甚至1天3个版本?人员不得不每天不停地更换软件版本,而这种情况会导致一些不利的后果:\L ^S ...

  2. 开发人员用的提交测试环境的AutoIT脚本

    主要功能就是依次检查各个步骤,确定该做的工作都已经完成,如果没有完成,就自动打开相关的工具,并等待完成. 代码如下: ;各个文件的位置 $vss = "C:\Program Files\Mi ...

  3. 在MSCOCO的test-dev数据集上测试过程(如何在MSCOCO服务器上提交测试结果)

    前言 如果科研工作做的是MSCOCO数据集,有实验效果了,一般都需要在test-dev数据集上进行测试,这样才能说明问题(val有标注数据,万一有人投机取巧在val验证集上效果贼高,然后就说明他的是S ...

  4. 提交测试流程和【开发提测申请模板】

    项目到了需要提测的时候,提测这件事当然不能通过口头提测,得出提测单,还要写清楚提测的功能和相关事项,这是很重要的!! 提测的方式呢,一般可以通过项目管理系统,像我们用的禅道,或者通过邮件抄送的方式,总 ...

  5. 关于INRIA Aerial Labeling Contest无法正确提交测试结果的解决方法

  6. 软件需求分析作业提交测试

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.pandas是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: ...

  7. iOS提交TestFlight测试显示缺少合规证明

    当我们在使用TestFlight进行应用测试时,上传应用后在选择构建版本时警告"缺少出口合规证明".如下图 解决方式是在Info.plist中增加字段App Uses Non-Ex ...

  8. 『TopCoder 组件开发指南』

    导读: 『TopCoder 组件开发指南』 Ⅰ. 简介 TopCoder 组件开发 TopCoder 组件开发使用的语言包括Java 和C#,尽管这两种语言有较大差别,但开发过 程却非常相似.本指南将 ...

  9. 两阶段提交实际项目V1

    项目介绍 两阶段提交项目主要是实际用代码演示复现一下,两阶段提交的执行过程,仅供学习参考.本次主要分析的版本为V1版本,主要实现的流程包括服务端的基础架构编写,客户端的基础架构编写,完成事务提交的过程 ...

最新文章

  1. 2022-2028年中国医学模拟教育产品市场供需现状及投资战略研究报告
  2. C语言回调函数demo(帮助理解)以海康isapiExternDemo回调函数为例
  3. 1.7 Appium依赖添加
  4. Web缓存的作用与类型
  5. 字符串匹配,KMP算法
  6. 【随感】tomorrow ,new semester ,finally i have time to read some books~
  7. 数据库函数..........
  8. 解决Ubuntu make 命令 sudo: make: command not found
  9. mongobd运行电脑不允许_U盘中的操作系统:Chrome OS,极致简洁超流畅,拯救你的旧电脑...
  10. You have not concluded your merge (MERGE_HEAD exists)
  11. shell 第六次作业(grep正则、sed)
  12. 求字符串转化的最小操作次数 DP动态规划
  13. 笔记本电脑进水怎么办?
  14. NOI-C语言编程基础之循环控制——药房管理
  15. 过去分词做宾语补足语
  16. 兔子数列规律怎么讲_兔子数列规律
  17. 系统介绍python魔法方法
  18. MOS管符号箭头指向问题
  19. MISRA 2004 VS MISRA 2012
  20. iOS系统神奇app,别以为你穿了马甲我就找不到你了

热门文章

  1. background家族详解
  2. 电脑里u盘的内容删除了怎么还原?简单实用方法分享
  3. nginx反向代理配置 1
  4. MT 256 Advice of Non-Payment of Cheques非支付支票通知
  5. 关于服务器的负载和CPU的使用率
  6. 面向服务架构SOA相关概念
  7. 基于springboot+vue的疾病匿名检测查询系统
  8. Odoo与浪潮合资研发PS Cloud之如何销售配饰及选购产品(交叉销售)
  9. SQL-null值和空值
  10. 大家好我是二龙山扛把子