在线编程介绍
阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding
本文为大家介绍其中的 第41题:神秘消失 的题目解析,具体如下:
题目描述
题目等级:简单
知识点:字符串
查看题目:神秘消失
在书架上摆着一些书,这些书只有两种颜色,要么是黄色,要么是蓝色,突然某一天这些书被施了魔法,如果一本黄色和一本蓝色的书挨着,这两本书就会消失不见,然后右边的书会往左边移动,直到和左边的书挨着,如果这两本颜色不同,这两本书又会神秘消失。
现在给你一个只包含A和B的字符串s(1<=|s|<=100000),其中A表示黄色的书,B表示蓝色的书,问这n本书中最多会消失多少本书?
输入一个字符串s,s中A表示黄色的书,B表示蓝色的书;
输出最多会消失多少本书。
示例1
输入:
"AABB"
输出:
4
解题方法
本题可以通过观察规律得出解题思路,根据题意,两种颜色的书相邻摆放,就都会消失。可以得知只要两种颜色的书同时存在,就会处于不稳定的状态,总会有书消失,因此到最后的时候必然只能剩下一种颜色的书。
分析到这里,答案呼之欲出了。两种书中,数量较少的书最终会全部消失,消失的时候又会带走一本不同颜色的书。所以消失的书的数量为:数量较少的书的数量*2。
只要把字符串转成字符数组,然后分别统计字符A和字符B的数量即可。
时间复杂度:O(n)
空间复杂度:O(1)
看完之后是不是有了想法了呢,快来练练手吧>>查看题目:神秘消失