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

本文主要是介绍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")

这篇关于C++笔试练习笔记 【2】: 数字统计 BC153 两个数组的交集 NC313 点击消除 AB5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/954549

相关文章

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat