当前位置: 首页> 财经> 创投人物 > 贺卡网页_永久免费网站建立_seo是什么岗位_如何制作网站免费建站

贺卡网页_永久免费网站建立_seo是什么岗位_如何制作网站免费建站

时间:2025/7/11 14:17:29来源:https://blog.csdn.net/uyeonashi/article/details/143582564 浏览次数:0次
贺卡网页_永久免费网站建立_seo是什么岗位_如何制作网站免费建站

1、数字统计

1.1题目

1.2 思路

根据题目得知我们要统计2出现的次数,那么这就是一个枚举 + 数字拆分的过程,先设一个变量count统计2出现的次数,那么count怎么变化呢? 当然了出现一个2,count就+1,重点在于如何数字拆分,比如222,count该怎么++,我们只需要%10,/10即可,222%10 = 2,这时候count就++,222/10 = 22,再%10,再/10,去比对是否等于2即可,理清思路,我们就可以去写代码了

1.3 代码实现

#include <iostream>
using namespace std;int main() {int L, R;cin >> L >> R;int count = 0;for(int i = L;i <= R;i++){    //防止i发生变化,定义tmp记录此时的iint tmp = i;while(tmp){if(tmp % 10 == 2)count++;tmp /= 10;}}cout << count << endl;return 0;
}

2、两个数组的交集

2.1 题目

2.2 思路

读完题目我们可以想到要遍历两个数组,如果有相同的数字就插入到新数组中。

但是有个小细节,注意去重问题,这里就可以使用哈希表,先将第一个数组中的全部元素放到哈希表中,看看第二个数组中有没有相同元素在哈希表中,如果有则放到新的数组中,

这里我们可以以数组模拟哈希,用bool类型的数组,用数组下标标记是否存在哈希表中。那么如何去重呢,就是当我们将相同的数放到新数组中的同时,将哈希表中的数删除,即将当前位置置为false。理清思路,接下来就是代码实现;

2.3 代码实现

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {   bool hash[1001] = {0};//这里也可以初始化为falsevector<int> ret;for(auto x : nums1)hash[x] = true;for(auto x : nums2){if(hash[x]){ret.push_back(x);hash[x] = false;}}return ret;}
};

 3、点击消除

3.1 题目

3.2 思路

读完题后我们知道本题是要消除相邻字母,最后输出剩余字母,消除全部则输出0.

这里联想想到一个括号匹配的题目,使用栈来解决这一类题目,使用先入后出的特性比较容易处理,先进一个字母,后续每一个字母和栈顶元素比较,相同则出栈,最终栈中剩余字母则是我们需要输出的字符串

这里我们可以用可变长的数组来模拟栈,这里我们就使用string,string可以从尾部进行尾删和尾插,因为如果真的使用栈我们最终得到的是一个逆序的字符串,还要reverse一下,这里可以提升一点效率。ok,理清思路,接下来就是编写代码了

3.3 代码

#include <iostream>
using namespace std;int main() 
{string s,ret;//用ret来模拟栈cin >> s;for(auto ch : s){   //栈不为空,且入栈元素等于栈顶元素,则出栈if(ret.size() && ret.back()==ch)ret.pop_back();elseret += ch;  //入栈}if(ret.size()) //记得判空,栈为空则输出0cout << ret << endl;elsecout << 0 << endl;return 0;
}


本篇完,下篇见!

关键字:贺卡网页_永久免费网站建立_seo是什么岗位_如何制作网站免费建站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: