【每日刷题】Day138

news2024/11/26 2:49:41

【每日刷题】Day138

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 6. Z 字形变换 - 力扣(LeetCode)

2. 38. 外观数列 - 力扣(LeetCode)

3. 1419. 数青蛙 - 力扣(LeetCode)

1. 6. Z 字形变换 - 力扣(LeetCode)

//思路:模拟。

//按照题目的要求照葫芦画瓢将Z字形矩阵模拟出来即可。

//模拟出矩阵后直接遍历矩阵存储非 '\0' 元素。

class Solution {

public:

    string convert(string s, int numRows)

    {

        string ans;

        vector<vector<char>> mock(numRows,vector<char>(s.size()));

        int sub = 0,j = 0;// j 代表列号;sub用来遍历字符串 s 

        while(sub<s.size())

        {

            int i = 0;

            while(sub<s.size()&&i<numRows)//竖直向下模拟存储,i++,j不动

            {

                mock[i][j] = s[sub++];

                i++;

            }

            i--;// i-- 回到矩阵中

            while(sub<s.size()&&--i>0) mock[i][++j] = s[sub++];//这里 i 先 -- ,因为最后一行在我们竖直向下的模拟过程中已经存储了;同样的,--i > 0 因为我们在竖直向下模拟的过程中 0 位置也已经存储了 

            j++;// j++ 进入下一列

        }

        for(int i = 0;i<numRows;i++)

        {

            for(int j = 0;j<s.size();j++)

            {

                if(mock[i][j]!='\0')

                    ans.push_back(mock[i][j]);//遍历模拟矩阵

            }

        }

        return ans;

    }

};

2. 38. 外观数列 - 力扣(LeetCode)

//思路:双指针+模拟。

//本题难点仅在于 行程长度编码 的理解。只要理解清楚了本题的模拟思路就非常容易想了。

//模拟过程:使用双指针 left 和 right 遍历当前需要编码的字符串,right初始为1,left初始为0。当 right 和 left 指向的字符不同时,right - left 就是 left 指向字符的个数,记录。

class Solution {

public:

    string countAndSay(int n)

    {

        vector<string> mock;

        mock.push_back("1");

        string tmp = "1";

        for(int i = 0;i<n;i++)

        {

            string arr;

            int left = 0,right = 1;

            while(right<tmp.size())

            {

                while(right<tmp.size()&&tmp[right]==tmp[left]) right++;//找到第一个与 left 不同的字符

                arr.push_back(right-left+'0');//记录 left 字符出现的次数

                arr.push_back(tmp[left]);//再记录 left 字符

                left = right;

                right++;

            }

            if(left<tmp.size())//当 right 越界后,如果 left 还未越界,说明 left 还未记录

            {

                arr.push_back(right-left+'0');

                arr.push_back(tmp[left]);

            }

            tmp = arr;

            mock.push_back(arr);

        }

        return mock[n-1];

    }

};

3. 1419. 数青蛙 - 力扣(LeetCode)

//思路:哈希+模拟。

//本题的模拟思路还是比较不好想的,直接来看图

class Solution {

public:

    int minNumberOfFrogs(string croakOfFrogs)

    {

        int hash[128] = {0};

        for(int i = 0;i<croakOfFrogs.size();i++)

        {

            if(croakOfFrogs[i]=='c')

            {

                if(hash['k']) hash['k']--;//判断是否有青蛙鸣叫完了,让鸣叫完了的青蛙继续鸣叫

                hash['c']++;

            }

//下面都是去判断是否有青蛙鸣叫到了前一个字符

            else if(croakOfFrogs[i]=='r')

            {

                if(hash['c'])

                {

                    hash['c']--;

                    hash['r']++;

                }

                else return -1;

            }

            else if(croakOfFrogs[i]=='o')

            {

                if(hash['r'])

                {

                    hash['r']--;

                    hash['o']++;

                }

                else return -1;

            }

            else if(croakOfFrogs[i]=='a')

            {

                if(hash['o'])

                {

                    hash['o']--;

                    hash['a']++;

                }

                else return -1;

            }

            else

            {

                if(hash['a'])

                {

                    hash['a']--;

                    hash['k']++;

                }

                else return -1;

            }

        }

        for(int i = 97;i<107;i++)//最后还需要判断是否有青蛙未能完成鸣叫

            if(hash[i]) return -1;

        return hash['k'];//最终 'k' 位置的值就是有多少只青蛙完成了鸣叫

    }

};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2024版】超详细安装教程以及环境配置和使用指南, 学Python看完这一篇就够了!

windows版本PyCharm安装 1.点击蓝色链接---->PyCharm官网&#xff0c;进入之后是这个界面。 2.点击"Download"进入下载页面 注意&#xff1a;若有老版本IDEA&#xff0c;先卸载&#xff08;控制面板卸载&#xff09;&#xff0c;再安装&#xff01; 以管理员身…

1788C - Matching Numbers

给你n&#xff0c;求permutation [ 1 , 2 n ] [1,2n] [1,2n]数字能不能构造出 n n n个数字&#xff0c;每个数字是其中两个数字之和。 偶数不行&#xff0c;通过之和相同构造n和k的关系&#xff0c;k是构造后的首项。 奇数的话&#xff0c;我们把 [ 1 , 2 n ] [1,2n] [1,2n]…

两种方式创建Vue项目

文章目录 引言利用Vue命令创建Vue项目准备工作安装Vue CLI创建Vue项目方法一&#xff1a;使用vue init命令方法二&#xff1a;使用vue create命令启动Vue项目 利用Vite工具创建Vue项目概述利用Vite创建项目启动项目 结语 引言 大家好&#xff0c;今天我将向大家展示如何使用不…

【计算机方向】三本计算机视觉IEEE系列,发文量高,影响因子呈上升趋势,备受国人追捧!

本期将为您带来三本计算机SCI 妥妥毕业神刊&#xff01; IEEE Transactions on Pattern Analysis and Machine Intelligence IEEE Transactions on Knowledge and Data Engineering IEEE Transactions on Cognitive and Developmental Systems 期刊名称&#xff1a;IEEE Tr…

如何在Ubuntu上更改MySQL数据存储路径

文章目录 0 背景1 备份现有数据库数据2 停止 MySQL 服务3 复制现有的 MySQL 数据到新目录4 修改 MySQL 配置文件5 更新 AppArmor 或 SELinux 配置&#xff08;如有启用&#xff09;6. 修改 MySQL 系统文件中的 datadir7. 启动 MySQL 服务8. 验证更改参考资料 0 背景 在原先划分…

Cpp::STL—list类的模拟实现(上)(13)

文章目录 前言一、结点类的实现二、迭代器类的实现迭代器类的存在意义迭代器类的模板参数构造函数运算符的重载--运算符的重载、!运算符的重载*运算符的重载->运算符的重载 总结 前言 注意本篇难度偏高&#xff0c;其主要体现在迭代器类的实现&#xff01;   什么&#xf…

【论文#码率控制】ADAPTIVE RATE CONTROL FOR H.264

目录 摘要1.前言2.基本知识2.1 蛋鸡悖论2.2 基本单元的定义2.3 线性MAD预测模型 3.GOP级码率控制3.1 总比特数3.2 初始化量化参数 4.帧级码率控制4.1 非存储图像的量化参数4.2 存储图像的目标比特 5.基本单元级码率控制6.实验结果7.结论 《ADAPTIVE RATE CONTROL FOR H.264》 A…

望繁信科技创始人索强出席2022福布斯中国·青年海归菁英100人评选颁奖典礼

2022年12月20日&#xff0c;由福布斯中国和福科无限共同举办的“2022福布斯中国青年海归菁英100人评选”颁奖典礼在上海圆满落幕。 来自福布斯中国的高层、知名企业家、投资人齐聚一堂&#xff0c;围绕全球化趋势、海归创业机遇等话题&#xff0c;共同把脉数字时代发展风向&am…

vim实用笔记

函数跳转功能 想要使用函数跳转功能需要先安装 ctags sudo apt-get install exuberant-ctags接着&#xff0c;在源文件目录树执行如下命令&#xff1a; ctags -R . 即可在该目录下生成一个tags文件&#xff0c; 这个文件就是所有函数和变量的索引 接着打开用vim打开任一文件…

使用node+prisma+socket+vue3实现一个群聊功能,拓展功能:使用lottie实现入场动画

使用nodeprisma和vue3实现一个群聊功能 后端代码编写 node环境初始化 新建一个空文件夹node&#xff0c;初始化node环境 npm init -y修改 packages.json&#xff0c;添加 type 为 module&#xff0c;删除 main {"name": "node","version": …

iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例

作者&#xff1a;UC 浏览器后端工程师&#xff0c;梁若羽 传统 ELK 方案 众所周知&#xff0c;ELK 中的 E 指的是 ElasticSearch&#xff0c;L 指的是 Logstash&#xff0c;K 指的是 Kibana。Logstash 是功能强大的数据处理管道&#xff0c;提供了复杂的数据转换、过滤和丰富…

如何写好SCI论文的Abstract

摘要是一篇论文的缩影&#xff0c;是对全文内容的高度浓缩和提炼&#xff0c;也是整篇论文的精髓和灵魂。读者通常先通过摘要快速获得文章信息&#xff0c;然后决定是否要进一步仔细阅读全文&#xff0c;因此&#xff0c;写好摘要至关重要! 那么如何才能写好论文摘要呢&#xf…

线性代数在大一计算机课程中的重要性

线性代数在大一计算机课程中的重要性 线性代数是一门研究向量空间、矩阵运算和线性变换的数学学科&#xff0c;在计算机科学中有着广泛的应用。大一的计算机课程中&#xff0c;线性代数的学习为学生们掌握许多计算机领域的关键概念打下了坚实的基础。本文将介绍线性代数的基本…

睡眠小乖 2.2.19 | 免费改善睡眠神器

睡眠小乖是一款完全免费的睡眠监测软件、冥想软件、改善睡眠软件。支持的功能包括&#xff1a;睡眠监测、梦话鼾声记录、睡眠报告、多种白噪音、冥想板块。白噪音板块提供了近80种白噪音&#xff0c;支持任意选择4种白噪音组合成一个混音&#xff0c;支持单独调节每种白噪音的音…

高标准农田建设专项整治行动拉开序幕,建设监管如何破局?

近日&#xff0c;高标准农田建设工程质量“回头看”和专项整治行动拉开序幕&#xff0c;将全面梳理2020年以来立项实施的高标准农田建设项目&#xff0c;围绕前期工作、施工建设、管护利用等环节&#xff0c;聚焦方案设计是否规范、监管责任是否落实、建后利用是否到位、建后管…

安全认证:oath2

一、一些概念&#xff1a; 1、认证&#xff1a;主要解决的是你是谁的问题。 三个层面认证&#xff1a;信道认证&#xff08;SSL等&#xff09;&#xff0c;协议认证&#xff08;例如用http协议的时候的格式&#xff09;&#xff0c;内容认证&#xff08;比如浏览网页的时候&a…

ASO优化截图如何影响 App Store 和 Google Play 的安装数量

无论您的应用程序多么吸引人和有用&#xff0c;用户在下载它之前都不知道它。但是&#xff0c;您如何让潜在用户在众多竞争对手应用程序中选择您的应用呢&#xff1f;关键是让您的应用程序引人注目。在本文中&#xff0c;我将向您介绍应用程序的视觉组件以及如何增强它以从其他…

自主性革命:人工智能赋予人形机器人大脑

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 人工智能&#xff08;AI&#xff09;是人形…

蛋鸡养殖场饲料粉碎加工机器设备

蛋鸡养殖场饲料粉碎加工机器设备种类繁多&#xff0c;包括粉碎机、混合机、制粒机等多种设备&#xff0c;用于将饲料原料进行粉碎、混合、制粒等处理&#xff0c;以生产出营养均衡、易于消化吸收的蛋鸡饲料‌。具体来说&#xff1a;‌粉碎机‌&#xff1a;用于将谷物、豆类等饲…

安卓手机termux安装ubuntu24桌面环境

要在 proot-distro 中的 Ubuntu 上安装桌面环境并实现 远程连接&#xff0c;可以按照以下步骤进行。这将包括安装轻量级桌面环境&#xff08;如 LXDE 或 XFCE&#xff09;、VNC 服务器&#xff0c;并配置远程访问。 步骤 1&#xff1a;安装 Ubuntu 安装并登录 Ubuntu&#xff1…