力扣题目训练(9)

2024年2月2日力扣题目训练

  • 2024年2月2日力扣题目训练
    • 412. Fizz Buzz
    • 414. 第三大的数
    • 415. 字符串相加
    • 129. 求根节点到叶节点数字之和
    • 131. 分割回文串
    • 65. 有效数字

2024年2月2日力扣题目训练

2024年2月2日第九天编程训练,今天主要是进行一些题训练,包括简单题3道、中等题2道和困难题1道。惰性太强现在才完成,不过之后我会认真完成的。

412. Fizz Buzz

链接: Fizz Buzz
难度: 简单
题目:
题目描述

运行示例:
运行示例

思路:
这就是一个简单的遍历,只要按要求把特定位置进行修改即可。
代码:

class Solution {
public:
    vector<string> fizzBuzz(int n) {
        vector<string> ans;
        for(int i = 0 ; i < n; i++){
            if((i+1)%3 == 0 && (i+1)%5 == 0){
                ans.push_back("FizzBuzz");
            }else if((i+1)%3 == 0 && (i+1)%5 != 0){
                ans.push_back("Fizz");
            }else if((i+1)%3 != 0 && (i+1)%5 == 0){
                ans.push_back("Buzz");
            }else{
                ans.push_back(to_string(i+1));
            }
        }
        return ans;
    }
};

414. 第三大的数

链接: 第三大的数
难度: 简单
题目:
题目描述

运行示例:
运行示例

思路:
求第三大就是排序然后返回位置第三的数字,不过需要删除重复元素,而且sort是从小到大排序的,这些细节都需要注意和解决。
代码:

class Solution {
public:
    int thirdMax(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        auto it = std::unique(nums.begin(), nums.end());  
        nums.erase(it, nums.end());       
        for(int i = 0; i < nums.size(); i++){
            cout<<nums[i]<<endl;
        }
        return nums.size() >= 3? nums[nums.size()-3]:nums[nums.size()-1];
    }
};

415. 字符串相加

链接: 字符串相加
难度: 简单
题目:
题目描述

运行示例:
运行示例
思路:
遍历然后按照行列式的方法逐位计算。
代码:

class Solution {
public:
    string addStrings(string num1, string num2) {
        string ans="";
        int i = num1.size()-1;
        int j = num2.size()-1;
        int flag = 0;
        while(i >= 0 || j >= 0 || flag != 0){
            int x = i >= 0? (num1[i] - '0') : 0;
            int y = j >= 0? (num2[j] - '0') : 0;
            int temp =  x+ y + flag;
            if(temp >= 10){
                temp -= 10;
                flag = 1;
            }else{
                flag = 0;
            }
            ans += to_string(temp);
            i--;
            j--;
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};

129. 求根节点到叶节点数字之和

链接: 数字之和
难度: 中等
题目:
题目描述

运行示例:
运行示例

思路:
这道题求叶子节点数字之和利用深度优先遍历完成。
代码:

class Solution {
public:
    int dfs(TreeNode* root,int ans){
        if(root == NULL) return 0;
        ans = ans * 10 + (root->val);
        if(root->left == NULL && root->right == NULL ){
            return ans;
        }
        return dfs(root->left,ans) + dfs(root->right,ans);
    }
    int sumNumbers(TreeNode* root) {
        return dfs(root,0);
    }
};

131. 分割回文串

链接: 分割回文串
难度: 中等
题目:
题目描述

运行示例:
运行示例

思路:
分割回文可以看出需要利用回溯,而判断是否为回文可以利用动态规划判断。
代码:

class Solution {
private:
    vector<vector<string>> ans;
    vector<string> res;
    int n;
public:
    void dfs(string s, int i, vector<vector<bool>> f){
        if(i == n){
            ans.push_back(res);
            return;
        }
        for(int j = i; j < n; j++){
            if(f[i][j]){
                res.push_back(s.substr(i,j-i+1));
                dfs(s,j+1,f);
                res.pop_back();
            }
        }
    }
    vector<vector<string>> partition(string s) {
        n = s.size();
        vector<vector<bool>> f(n,vector<bool>(n,true));
        for(int i = n -1; i >= 0; i--){
            for(int j = i + 1; j < n; j++){
                f[i][j] = (s[i] == s[j]) && f[i+1][j-1];
            }
        }
        dfs(s,0,f);
        return ans;
    }
};

65. 有效数字

链接: 有效数字
难度: 困难
题目:
题目描述

运行示例:
运行示例

思路:
这道题就是按照要求判断只需根据条件一步一步进行判断即可。
代码:

class Solution {
public:
    bool isNumber(string s) {
        bool isNum = false;
        bool isDecimal = false;
        bool isE = false;
        bool isSign = false;
        for(int i = 0; i < s.size(); i++){
            char  temp = s[i];
            if(0 <= temp-'0' && temp-'0'<= 9){
                isNum = true;
            }else if( temp == '.'){
                if(isDecimal || (!isNum && i == s.size() - 1) || isE)  return false;  
                isDecimal = true;
            }else if(temp == 'e' || temp == 'E'){
                if(isE || !isNum || i == s.size() - 1) return false;
                isE = true;
            }else if(temp == '-' || temp == '+'){
                if((i > 0 && s[i-1] != 'e' && s[i-1] != 'E') || i == s.size() - 1) return false;
                isSign = true;
            }else{
                return false;
            }
        }
        return true;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/386503.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux_进程

进程创建 进程退出码 进程等待 程序替换 Shell作为命令行解释器是一个进程&#xff0c;它也有自己的数据结构task_struct和代码和数据。为了防止用户输入的指令造成Shell崩溃&#xff0c;所以Shell执行用户输入的指令是通过创建一个子进程来执行的。例如lspwd等等。 一.进程…

单html页面使用Vue3和Element-Plus

一、快速入门 使用CDN方式引入Vue3使用CDN方式引入Element-Plus的样式文件和组件库 案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, ini…

Unity类银河恶魔城学习记录7-4 P70 Improving sword‘s behaviour源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Colle…

前端秘法引言(配置vscode, 以及html的基础)

目录 一.配置环境vscode 二.配置插件 三.vscode的实用小技巧 四.标题段落换行标签 五.格式化标签 一.配置环境vscode vscode官网https://code.visualstudio.com/ 点击右上角的download 根据不同的操作系统进行下载安装,我这里选的是Windows x64 安装好后打开,点击左上角的…

前端学习的笔记第二篇

vscode如何快速生成代码 ! Tab 效果&#xff1a; 解析&#xff1a; <!DOCTYPE html>: 指定当前html版本5。 <html lang"en">: lang > language&#xff0c;en > english。指定当前页面内容是英文的。 <meta charset"UTF-8">:…

搭建网站的步骤和顺序?搭建一个网站的基本流程是什么?

搭建网站的步骤和顺序&#xff1f;搭建一个网站的基本流程是什么&#xff1f; 一.领取一个免费域名和SSL证书&#xff0c;和CDN 1.打开网站链接&#xff1a;https://www.rainyun.com/z22_ 2.在网站主页上&#xff0c;您会看到一个"登陆/注册"的选项。 3.点击"…

使用二分查找优化时间复杂度

二分查找&#xff0c;也称为折半查找&#xff0c;是一种效率较高的查找方法。但是&#xff0c;折半查找要求线性表必须采用顺序存储结构&#xff0c;而且表中元素按关键字有序排列。我们应该如何用在具体问题中呢&#xff1f; 题目链接&#xff08;力扣&#xff08;LeetCode&am…

Linux操作系统基础(十二):yum软件包管理器

文章目录 yum软件包管理器 一、yum常用命令 二、yum在线安装软件案例 三、yum在线删除软件案例 yum软件包管理器 yum&#xff08; Yellow dog Updater, Modified&#xff09;是一个在 Fedora 和 RedHat中的 Shell 前端软件包管理器。基于RPM包管理&#xff0c;能够从指定的…

高效的工作学习方法

1.康奈尔笔记法 在这里插入图片描述 2. 5W2H法 3. 鱼骨图分析法 4.麦肯锡7步分析法 5.使用TODOLIST 6.使用计划模板&#xff08;年月周&#xff09; 7. 高效的学习方法 成年人的学习特点&#xff1a; 快速了解一个领域方法 沉浸式学习方法&#xff1a; 沉浸学习的判据&am…

matplotlib从起点出发(13)_Tutorial_13_Autoscaling

0 自动放缩 轴上的限制可以手动设置&#xff08;例如ax.set_xlim(xmin, xmax))&#xff0c;或者Matplotlib可以根据Axes上已有的数据自动设置它们。此种放缩行为有许多选项&#xff0c;如下所述。 我们将从一个简单的折线图开始&#xff0c;显示自动缩放将轴限制扩展到数据的…

如何生成生成一个修仙世界的狗血短剧剧本

如何生成生成一个修仙世界的狗血短剧剧本 生成一个修仙世界的狗血短剧剧本将上述剧本转为对话 生成一个修仙世界的狗血短剧剧本 剧本名称&#xff1a;《仙途情缘》 角色&#xff1a; 易天行&#xff1a;男主角&#xff0c;天赋异禀的修仙者&#xff0c;性格坚毅&#xff0c;正…

鸿蒙开发系列教程(十九)--页面内动画(2)

组件内转场动画 组件的插入、删除过程即为组件本身的转场过程&#xff0c;组件的插入、删除动画称为组件内转场动画。通过组件内转场动画&#xff0c;可定义组件出现、消失的效果。 transition(value: TransitionOptions) 参数可以定义平移、透明度、旋转、缩放这几种转场样…

rabbitmq自用记录

参考博客RabbitMq安装与使用&#xff08;mac&#xff09;高效总结&#xff08;亲测&#xff09;_mac 安装rabbitmq 服务端口-CSDN博客 启动服务 这里提前把redis服务也启动了 这里看到前端更改数据,后端进行日志打印 登录后访问rabbitmq网址

docker数据科学与spark镜像源与使用常见问题疑难解答

以下是一些与数据挖掘和数据科学相关的 Docker 镜像源&#xff1a; jupyter/all-spark-notebook: 此镜像包含 Jupyter Notebook 和 Spark 的完整环境&#xff0c;用于 Spark 开发和学习。 rocker/tidyverse: 此镜像包含用于 R 语言的 tidyverse 数据科学包。 jupyter/scipy-n…

代码随想录算法训练营Day25|回溯算法·组合总和III,电话号码的字母组合

组合总和III 题目&#xff1a;找出所有相加之和为n的k个数的组合。组合中只允许含有1-9的正整数&#xff0c;并且每种组合中不存在重复的数字。 组合变量个数为k个&#xff0c;和为n。简单思路是使用k重循环&#xff0c;一层层找出来&#xff0c;然后把每一层的数相加&#x…

单链表的介绍

一.单链表的概念及结构 概念&#xff1a;链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 结构&#xff1a;根据个人理解&#xff0c;链表的结构就像火车厢一样&#xff0c;一节一节连在一起的&#x…

浅析Linux追踪技术之ftrace:Event Tracing

文章目录 概述使用Event Tracing使用set_event接口使用enable接口 Event配置Event formatEvent Filtering过滤规则设置过滤器 Event TriggerTrigger语法 Trace marker相关参考 概述 Event Tracing&#xff08;事件追踪&#xff09;利用在内核代码中加入的各种Tracepoint&#…

计算机网络概述习题拾遗

学习目标&#xff1a; 自下而上第一个提供端到端服务的层次 路由器、交换机、集线器实现的功能层 TCP/IP体系结构的网络接口层对应OSI体系结构的哪两个层次 分组数量对总时延的影响 如果这篇文章对您有帮助&#xff0c;麻烦点赞关注支持一下动力猿吧&#xff01; 学习内容…

Hive的Join连接、谓词下推

前言 Hive-3.1.2版本支持6种join语法。分别是&#xff1a;inner join&#xff08;内连接&#xff09;、left join&#xff08;左连接&#xff09;、right join&#xff08;右连接&#xff09;、full outer join&#xff08;全外连接&#xff09;、left semi join&#xff08;左…

课时27:内容格式化_输入格式化_EOF原理

3.2.1 EOF原理 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 场景需求 在运维岗位中&#xff0c;有非常多的场景需要我们在脚本中编写应用软件的配置文件。在这些应用软件的配置文件中&#xff0c;经常携带大量的格式&#xff0…
最新文章