C++笔试练习笔记 【2】: 数字统计 BC153 两个数组的交集 NC313 点击消除 AB5

数字统计

在这里插入图片描述

分析题目

这个题涉及到两个知识点,就是枚举和数字的拆分
那么我的思路是进行遍历,拆分数字判断二的个数,枚举进行计数
那么数字的拆分就是通过%和/进行的
在这里插入图片描述

代码部分

#include <iostream>
using namespace std;

int main() {
    int a=0,b=0,mark=0;
    cin >> a >> b;
    for(int i=a;i<=b;i++)
    {
        int n=i;
        while(n)
        {
            if(n%10==2) mark++;
            n=n/10;
        }
    }
    cout << mark << endl;
}

两个数组的交集

在这里插入图片描述

题目分析

刚看到这个题想到用哈希表解决,但是这个题的数据不大所以如果我们用容器来解决耗时所以我想到了用数组模拟一个哈希表就能快速解决
这个题还有一个点就是例如

[1 ,2 ,2 ,2 ,2 ] 和 [ 8 ,2 ,2 ,2 ,6]

我们的返回值应该是 [ 2 ] 而不是 [ 2 ,2 ,2 ]
所以这也是我们用数组来模拟哈希表的优势,我们在每次成功判断一个数是公共的之后便把这个数从哈希表中删除,就不怕重复的问题了

代码部分

#include <algorithm>
class Solution {
    bool hash[1001]={0};//开一个bool型数组来模拟哈希表
public:  
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector <int> an;//记录答案
        for(auto a:nums1)
        {
            hash[a] = true;
        }

        for(auto a:nums2)
        {
            if(hash[a])
            {
                an.push_back(a);
                hash[a]=false;//每次发现公公数记录后从哈希中删除
            }
        }

        return an;
    }
};

点击消除

在这里插入图片描述

题目解析

这道题我想到的是用栈进行解决
以示例1为例:
首先就是创建栈,之后a进栈,之后判断下一个是否与a相同相同消除不同进栈如图:
在这里插入图片描述
当下一个与栈顶相同时进行消除只需把栈顶元素pop即可如图:
在这里插入图片描述
虽然用栈来实现是完全没有问题的,但是在最后输出时由于栈的特性所以数据是反的会有点麻烦,所以我用string来模拟栈来实现功能,并且输出的时候直接输出即可

代码部分

#include <iostream>
using namespace std;
#include <string>

int main() {
    string str;
    cin>>str;
    string an;

    for(int i=0; i < str.size(); i++)
    {
        if(an.back()==str[i])//要是匹配【栈顶元素等于下一个要入栈的元素】即消除【出栈】
        {
            an.pop_back();
        }
        else {
            an.push_back(str[i]);//正常就入栈
        }
    }

if(an.size()!=0)//判断最后剩余的是否为空
{
    cout << an;//不为空输出消除后的结果
}
else {
    cout << 0 <<endl;//空输出0,题目规定
}

return 0;

}
// 64 位输出请用 printf("%lld")

相关推荐

  1. C++每日一练——交集

    2024-05-01 18:30:03       10 阅读
  2. 交集

    2024-05-01 18:30:03       19 阅读
  3. 交集

    2024-05-01 18:30:03       17 阅读
  4. 笔试强训day1-交集

    2024-05-01 18:30:03       12 阅读
  5. C/C++---------------LeetCode第350. 交集 II

    2024-05-01 18:30:03       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-01 18:30:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-01 18:30:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-01 18:30:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-01 18:30:03       20 阅读

热门阅读

  1. 学习mysql相关知识记录

    2024-05-01 18:30:03       11 阅读
  2. 大模型LoRA微调调参的实战技巧

    2024-05-01 18:30:03       15 阅读
  3. 在编程中,方法和函数都是什么意思

    2024-05-01 18:30:03       14 阅读
  4. C语言创建文件夹和多级目录

    2024-05-01 18:30:03       14 阅读
  5. DB-GPT源码阅读1-数据库表读取

    2024-05-01 18:30:03       13 阅读
  6. 2024 c/c++A组填空第一题--选择与篮球

    2024-05-01 18:30:03       11 阅读
  7. 网络安全思考题

    2024-05-01 18:30:03       8 阅读
  8. 自动化测试——Selenium

    2024-05-01 18:30:03       11 阅读
  9. C++临时对象的产生及优化

    2024-05-01 18:30:03       9 阅读
  10. 【Python】pandas.cut()函数的用法

    2024-05-01 18:30:03       11 阅读
  11. Python 发送钉钉消息(markdown格式)

    2024-05-01 18:30:03       8 阅读