强化训练:day7(字符串中找出连续最长的数字串、岛屿数量、拼三角)

文章目录

  • 前言
  • 1. 字符串中找出连续最长的数字串
    • 1.1 题目描述
    • 1.2 解题思路
    • 1.3 代码实现
  • 2. 岛屿数量
    • 2.1 题目描述
    • 2.2 题目描述
    • 2.3 代码实现
  • 3. 拼三角
    • 3.1 题目描述
    • 3.2 解题思路
    • 3.3 代码实现
  • 总结

前言

  1. 字符串中找出连续最长的数字串
  2. 岛屿数量
  3. 拼三角

1. 字符串中找出连续最长的数字串

1.1 题目描述

在这里插入图片描述

1.2 解题思路

  双指针——使用两个指针,一个找数字的头,一个找数字的尾,再用一个变量保存它们之间的长度,如果当前长度为前一个长度大,就更新结果,继续找下一个数字字符串。

1.3 代码实现

#include <iostream>
using namespace std;
#include <string>
int main() {
    string s;
    cin >> s;
    int left = 0, right = 0;
    int len = 0;
    string ret;
    int n = s.size();
    // while(right < s.size())
    // {
    //     while(right < s.size() && s[right] <= '0' || s[right] >= '9') right++;
    //     left = right;
    //     while(right < s.size() && s[right] >= '0' && s[right] <= '9') right++;
    //     if(len < right - left)
    //     {
    //         len = right - left;
    //         ret = s.substr(left, right - left);
    //     }
    //         left = right;
    // }
    while (left < n && right < n) 
    {
        while (left < n && (s[left] <= '0' || s[left] >= '9')) left++;
        right = left;
        while (right < n && (s[right] >= '0' && s[right] <= '9')) right++;
        if (len < right - left) 
        {
            len = right - left;
            ret = s.substr(left, right - left);
        }
        left = right;
    }
    if(ret.size() == 0) cout << "";
    else cout << ret;

    cout << ret;
    return 0;
}

2. 岛屿数量

2.1 题目描述

在这里插入图片描述

2.2 题目描述

  典型的dfs, dfs函数的功能:将一个陆地及其相邻的陆地进行标记。
  对整个地图进行循环,只要找到一个陆地就进行一次dfs,将其相邻的陆地都进行标记,防止对已经标价过的陆地重复统计。
  当循环结束,也就意味着所有的陆地都已经标记,只需要统计进行了几次dfs即可。
  对于有关递归的问题,如果不理解,建议画图,通过走读代码,将每一次代码执行后的结果都画出来,这样更容易明白整个解题过程。

2.3 代码实现

class Solution {
  public:
    int m, n;
    bool vis[201][201];
    int dx[4] = {0, 0, 1, -1};
    int dy[4] = {1, -1, 0, 0};
    void dfs(vector<vector<char> >& grid, int i, int j) 
    {
        vis[i][j] = true;
        for (int k = 0; k < 4; k++) 
        {
            int x = i + dx[k], y = j + dy[k];
            if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1') 
            {
                grid[x][y] = '0';
                dfs(grid, x, y);
            }
        }
    }
    int solve(vector<vector<char> >& grid) 
    {
        int ret = 0;
        memset(vis, 0, sizeof vis);
        m = grid.size(), n = grid[0].size();
        for (int i = 0; i < m; i++)
            for (int j = 0; j < n; j++) 
            {
                if (grid[i][j] == '1') 
                {
                    dfs(grid, i, j);
                    ret++;
                }
            }
        return ret;
    }
};

3. 拼三角

3.1 题目描述

在这里插入图片描述

3.2 解题思路

  这个题数据量很小,直接三层for循环就解决了。
  然后看了别人的题解,竟然发现了一些奇思妙想……
  看图吧:
在这里插入图片描述

3.3 代码实现

#include <iostream>
#include <algorithm>
using namespace std;
int t;
int arr[6];
int main()
{
     cin >> t;
     while(t--)
     {
         for(int i = 0; i < 6; i++) cin >> arr[i];
         sort(arr, arr + 6);
         if(arr[0] + arr[1] > arr[2] && arr[3] + arr[4] > arr[5] ||
            arr[0] + arr[2] > arr[3] && arr[1] + arr[4] > arr[5] ||
            arr[0] + arr[3] > arr[4] && arr[1] + arr[2] > arr[5] ||
            arr[0] + arr[4] > arr[5] && arr[1] + arr[2] > arr[3])
         {
            cout << "Yes" << endl;
         }
        else cout << "No" << endl;
     }
 
 return 0;
}

总结

  对于第一题,当时使用一模一样的代码,不知道为什么当时写的时候测试用例总是只能过百分之80,今天测试的时候就成百分之百了……挺无语的。不过今天的重点还是第二题,dfs,大家可以通过画图来理解整个解题思路噢。
  那么第天七的内容就到此结束了,如果大家发现有什么错误的地方,可以私信或者评论区指出喔。我会继续坚持训练的,希望能与大家共同进步!!!那么本期就到此结束,让我们下期再见!!觉得不错可以点个赞以示鼓励!

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

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

相关文章

嵌入式和单片机的区别在哪?

嵌入式和单片机是两个不同的概念&#xff0c;它们在很多方面都存在着差异。嵌入式系统是一种专用的计算机系统&#xff0c;通常用于控制和监测其他设备。它通常由微处理器、存储器、输入/输出接口和其他外围设备组成。嵌入式系统可以运行各种操作系统&#xff0c;如 Linux、Win…

java spring boot动态数据库获得配置信息连接多数据源(数据库)

数据库 数据库文件和代码文件 https://download.csdn.net/download/qq_34631220/89304173 链接&#xff1a;https://pan.baidu.com/s/1xoh6xiSRx4nW_gKvR1QPjg 提取码&#xff1a;i7b7 –来自百度网盘超级会员V5的分享 文章位置 添加链接描述 说明&#xff1a;事务只能单库…

小程序常用组件

小程序常用组件 1.组件的定义2.常用组件3.引入外部字体图标库4.组件样式5.示例代码 1.组件的定义 组件就是指微信定义的具有特殊功能的标签&#xff0c;在wxml中只能使用微信定义的标签。 2.常用组件 <view>&#xff1a;用于页面布局的块级组件&#xff0c;类似于html中的…

【3dmax笔记】021:对齐工具(快速对齐、法线对齐、对齐摄影机)

文章目录 一、对齐二、快速对齐三、法线对齐四、对齐摄影机五、注意事项3dmax提供了对齐、快速对齐、法线对齐和对齐摄像机等对齐工具: 对齐工具选项: 下面进行一一讲解。 一、对齐 快捷键为Alt+A,将当前选择对象与目标对象进行对齐。 最大对最大:

基于SpringBoot+Vue的法律咨询系统

课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域的鸿沟&#xff0c;信息的传播速度极慢&#xff0c;信息处理的速…

7B2 PRO主题5.4.2 免授权开心版源码 | WordPress主题

简介&#xff1a; B2 PRO 5.4.2 最新免授权版不再需要改hosts&#xff0c;和正版一样上传安装就可以激活。 直接在WordPress上传安装即可 点击下载

3.整数运算

系列文章目录 信息的表示和处理 : Information Storage&#xff08;信息存储&#xff09;Integer Representation&#xff08;整数表示&#xff09;Integer Arithmetic&#xff08;整数运算&#xff09;Floating Point&#xff08;浮点数&#xff09; 文章目录 系列文章目录前…

基于SpringBoot + MySQL的宠物医院管理系统设计与实现+毕业论文+指导搭建视频

系统介绍 项目的使用者可以避免排队挂号&#xff0c;比较方便&#xff0c;也方便于宠物医院的管理。现在的宠物本系统根据华阳社区宠物医院管理工作流程将系统使用者划分为三类&#xff0c;分别为、宠物医生、宠物主人以及系统管理人员&#xff0c;以下是对该三类类用户的具体…

几个简单操作,让3dmax渲染速度起飞‼️

3dmax渲染慢原因&#xff1a; 场景复杂度&#xff1a;场景中模型、材质、纹理和贴图的复杂性增加渲染时间。优化场景&#xff0c;使用简化模型和材质可提高速度。 高质量设置&#xff1a;高级渲染效果如光线追踪、全局照明等增加计算量。适当降低设置&#xff0c;如减少分辨率…

类文件具有错误的版本 61.0, 应为 52.0

报错如下&#xff1a; Spring Boot 3以上版本至少得依赖JDK17版本&#xff0c;如果项目中要求使用JDK8版本&#xff0c;那么只能使用Spring Boot 2版本了。 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-par…

ssm+vue的公务用车管理智慧云服务监管平台查询统计(有报告)。Javaee项目,ssm vue前后端分离项目

演示视频&#xff1a; ssmvue的公务用车管理智慧云服务监管平台查询统计&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

pytest(二)

1.pytest-html⽣成报告 Pytest-HTML 是⼀个插件&#xff0c;它可以⽣成漂亮且易于阅读的 HTML 测试报告。下⾯是使⽤ pytest-html ⽣成报告的步骤&#xff1a; 1. 安装 pytest-html 插件&#xff1a; pip install pytest-html 2. 运⾏测试并⽣成报告 pytest --htmlr…

python内置类bytearray()详解

bytearray 是 Python 的一个内置类&#xff0c;它提供了一个可变序列的字节数组。 bytearray 数组的元素必须是0-255之间的整数&#xff0c;这些整数对应于ASCII字符集中的数字。下面着张图是部分ASCII字符&#xff1a; bytearray 是可变的&#xff0c;可修改其内容&#xff0c…

Linux下网络命令

目录 需求1-查看本机是否存在22端口解法1解法2解法3 需求2-查看其他主机是否存在22端口解法1解法2解法3 需求3-查看TCP连接解法1/2 需求4-统计80端口tcp连接次数解法 需求5-查看总体网络速度解法 需求6-查看进程流量解法 需求7-dns解法 需求8-traceroute到baidu解法 需求9-查看…

上传到 PyPI

将软件包上传到 PyPI&#xff08;Python Package Index&#xff09;&#xff0c;您需要遵循以下步骤&#xff1a; 准备软件包&#xff1a;确保您的软件包满足以下要求&#xff1a; 包含一个 setup.py 文件&#xff0c;用于描述软件包的元数据和依赖项。包含软件包的源代码和必要…

浅析扩散模型与图像生成【应用篇】(二十四)——Text2Live

24. Text2LIVE : Text-Driven Layered Image and Video Editing 本文提出一种文本驱动的图像和视频编辑方法。与其他方法直接对图像进行编辑的方式不同&#xff0c;本文提出的方法并不是基于扩散模型的&#xff0c;更像是一个自编码器&#xff0c;通过对原图编码解码输出一个新…

[ACTF新生赛2020]SoulLike

没见过的错误&#xff1a; ida /ctg目录下的hexrays.cfg文件中的MAX_FUNCSIZE64 改为 MAX_FUNCSIZE1024 然后就是一堆数据 反正就是12个字符 from pwn import * flag"actf{" k0 for n in range(12):for i in range(33,127):pprocess("./SoulLike")_flag…

FFmpeg常用API与示例(三)—— 音视频解码与编码

编解码层 1.解码 (1) 注册所有容器格式和 CODEC:av_register_all() (2) 打开文件:av_open_input_file() (3) 从文件中提取流信息:av_find_stream_info() (4) 穷举所有的流&#xff0c;查找其中种类为 CODEC_TYPE_VIDEO (5) 查找对应的解码器:avcodec_find_decoder() (6) …

家居分类的添加、修改、逻辑删除和批量删除

文章目录 1.逻辑删除家居分类1.将之前的docker数据库换成云数据库2.树形控件增加添加和删除按钮1.找到控件2.粘贴四个属性到<el-tree 属性>3.粘贴两个span到<el-tree>标签里4.代码5.效果6.方法区新增两个方法处理添加和删除分类7.输出查看一下信息8.要求节点等级小…

蓝桥杯国赛每日一题:完全二叉树的权值(双指针,二叉树)

题目描述&#xff1a; 给定一棵包含 N 个节点的完全二叉树&#xff0c;树上每个节点都有一个权值&#xff0c;按从上到下、从左到右的顺序依次是 A1,A2,⋅⋅⋅AN&#xff0c;如下图所示&#xff1a; 现在小明要把相同深度的节点的权值加在一起&#xff0c;他想知道哪个深度的节…