本题的主要思路是以 "fattyhappy" 为模板,对字符串进行模板匹配。 我们可以从原字符串的每一个字符开始,统计接下来 10 个数字与 "fattyhappy" 的不同字符数,并根据不同的字符数进行对应的操作。我们记不同字符数为 diff。 1.diff >= 3 该情况下无论如何交换都至少会有一个字符与模板字符串不同。 故当 diff >=…
题目分析 本题最优解必然满足所有按键最多只按下过一次,因为多次按压会抵消之前按压的效果; 本题的最优解与按键顺序无关,因为所有灯的亮灭与按键是叠加关系,与先后顺序无关。 思路分享 本题是一道典型的枚举题,但如果我们对所有位置都进行遍历,我们最多需要考虑216*16种情况,这显然不满足题目要求,因此我们需要对算法进行优化。 经过观察,我们不难发现:当…
本题有很多做法,最常见的是使用字符串数组来存储的方法。这里我想使用一种新的方法,同时向大家介绍一下【Vector】的使用。 什么是Vector? vector是【C++】中一个多功能的,能够操作多种数据结构和算法的模板类和函数库。我们可以将它理解为一个能够存放任意类型的动态数组,能够增加和压缩数据。 Vector的基本使用 Vector头文件:#i…
这是一道很好的练习位运算的题目。本文采用了二进制位拼接的方法来解决这道题目。