当前位置:首页 » 《资源分享》 » 正文

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

6 人参与  2024年10月16日 12:01  分类 : 《资源分享》  评论

点击全文阅读


【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++必看网站


点击全文阅读


本文链接:http://zhangshiyu.com/post/172524.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1