首页 > 编程语言 >【C/C++】速通某站上的经典“笔试”编程题

【C/C++】速通某站上的经典“笔试”编程题

时间:2024-10-15 16:21:20浏览次数:9  
标签:tmp 10 速通 int 编程 C++ vector nums1 nums2

【C/C++】速通某站上的经典“笔试”编程题

一. 题目描述:

在这里插入图片描述

解题思路:

将区间里面的数依次取模10(%)、除10,作用是大于等于10的数单独拆开(如123,依次拆开为3,2,1),判断是否等于2,如果是就count++;最后count数值为所求。
关键
1. 一个数取模10后的数值等于其个位数上的数值(如:123 % 10 = 3)
2. 一个数除10后的数值等于其去掉个位上的数的数值(如:123 / 10 = 12)

代码实现:

#include <iostream>
using namespace std;

int main() {
    int a, b;//输入区间
    int m;//中间转换变量
    int count = 0;//计数
    scanf("%d %d", &a, &b);
    for(int i = a; i <= b; i++)
    {
        int tmp = i;
        while(tmp >= 2)
        {
            m = tmp % 10;
            if(m == 2)
            {
                count++;
            }
            tmp /= 10;
        }
    }
    cout << count;
}

二. 题目描述:

在这里插入图片描述

解题思路:

先将这两个数组排序(关键1);创建一个vector变量tmp,直接双重循环依次比较所有元素;然后分两情况(1. tmp为空 ; 2. tmp不为空)插入到tmp中,不为空时要控制tmp中已有元素不再插入到tmp中(关键2);tmp为空时直接插入;

代码实现:

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums1 int整型vector 
     * @param nums2 int整型vector 
     * @return int整型vector
     */
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector<int> tmp;
        sort(nums1.begin(), nums1.end());//将nums1排序
        sort(nums2.begin(), nums2.end());//将nums2排序
        for(int i = 0; i < nums1.size(); i++)
        {
            for(int j = 0 ; j < nums2.size(); j++)
            {
                if(tmp.empty() && nums1[i] == nums2[j])
                tmp.push_back(nums1[i]);
                if(!tmp.empty() && nums1[i] == nums2[j] && nums1[i] != tmp[tmp.size() - 1])
                tmp.push_back(nums1[i]);
            }
        }
        return tmp;
    }
};

三. 题目描述:

在这里插入图片描述

解题思路:

创建一个string变量,充分利用迭代器(指针);依次判断相邻两个数是否相等,等则删除这两个数(注意迭代器的运用是关键);上面的示例二和示例三是两种特殊情况,控制这里的迭代器越界问题是关键;

代码实现:

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

int main() {
    string tmp;
    cin >> tmp;
    auto it = tmp.begin();
    while(it != tmp.end() - 1)
    {
        if(*it != *(it + 1))
        it++;
        if(*it == *(it + 1))
        {
            it = tmp.erase(it);
            it = tmp.erase(it);
            it -= 1;
        }
    }
    
    if(tmp.empty())
    cout << '0';
    else
    cout << tmp;
}

学习C++必看网站

标签:tmp,10,速通,int,编程,C++,vector,nums1,nums2
From: https://blog.csdn.net/2303_80737493/article/details/142906264

相关文章

  • 100天机器学习编程挑战:从零开始掌握ML技能
    什么是100天机器学习编程挑战?100天机器学习编程挑战(100DaysofMLCoding)是由知名AI教育者SirajRaval发起的一个项目,旨在帮助机器学习初学者通过100天的持续学习和实践,系统地掌握机器学习的基础知识和编程技能。该项目要求参与者每天至少花1小时学习机器学习相关知识并进......
  • c++中,经常需要用来获取用户输入的写法,或者暂停【防止终端退出】
    目录1.使用`cin.get()`暂停程序2.使用`std::cin.ignore()`结合`std::cin.get()`暂停程序3.使用`system("pause")`(仅限Windows)4.使用循环和`cin.get()`结合等待任意输入5.使用`cin>>`获取用户输入为了防止终端窗口在程序结束后立即关闭,可以使用一些方......
  • Chromium 中HTML5 WebSocket收发消息分析c++(一)
    一、WebSocket前端接口定义:WebSocket 对象提供了用于创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据的API。使用 WebSocket() 构造函数来构造一个 WebSocket。构造函数WebSocket(url[,protocols])返回一个 WebSocket 对象。常量ConstantValueWeb......
  • Chromium 中HTML5 WebSocket收发消息分析c++(二)
    看下websocket调用过程:基本定义参考上一篇:Chromium中HTML5WebSocket收发消息分析c++(一)-CSDN博客一、前端测试用例 参考:HTML5WebSocket|菜鸟教程(runoob.com) websocket.html文件如下:<!DOCTYPEHTML><html><head><metacharset="utf-8"><title>Web......
  • C++学习路线(十六)
    void类型指针void->空类型void*->空类型指针,只存储地址的值,丢失类型,无法访问,要访问里面的值我们必须对指针进行正确的类型转换,然后再间接引用指针所有其它类型的指针都可以隐式自动转换成void类型指针,反之需要强制转换。intarr[]={1,2,3,4,5};charch......
  • C++学习路线(十四)
    指针的自增操作查看数组与指针的关系#include<iostream>usingnamespacestd;intmain(){ intages[]={18,20,22,25,28}; intlen=sizeof(ages)/sizeof(ages[0]); cout<<"使用数组的方式访问元素"<<endl; for(inti=0;i<len;i++){ co......
  • C++学习路线(十五)
    多级指针#include<iostream>usingnamespacestd;intmain(){ intblock1=888; int*block2=&block1; int**block3=&block2; int***block4=&block3; int****block5=&block4; cout<<"block2:"<<*block2......
  • Ubuntu中VSCode配置CC++环境
    我的环境:Ubuntu22.04.5LTSVSCode版本:1.94.2参考文章:https://blog.csdn.net/zimuzi2019/article/details/106861692https://zhuanlan.zhihu.com/p/147366852一、安装gcc/g++和gdbsudoapt-getupdatesudoapt-getinstallgccsudoapt-getinstallg++sudoa......
  • day03(C++)信号槽
    目录1.概念2.函数原型3.连接方式3.1自带信号→自带槽3.2自带信号→自定义槽3.3自定义信号4.信号槽传参5.对应关系5.1一对多5.2多对一信号槽1.概念之前的程序界面只能看,不能交互,信号槽可以让界面进行人机交互。信号槽是Qt在C++基础上新增的......
  • 嵌入式编程思想
    1、所有嵌入式程序,都是一个死循环。飞控是最复杂的死循环。操作系统也是?死循环的控制周期、任务调度,如何处理?5ms中断,作为控制周期。任务调度,需要考虑跨周期指令,需要存储为全局或static,每个任务开始还需要初始化清空。【这个就是下面的控制结构。】涉及多周期的控制结构,复......