[笔试训练](三十三)097:跳台台阶扩展问题098:包含不超过两种字符的最长子串099:字符串的排列

news2025/5/25 12:06:21

目录

097:跳台台阶扩展问题

098:包含不超过两种字符的最长子串

099:字符串的排列


097:跳台台阶扩展问题

题目链接:跳台阶扩展问题_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

规律题:

1.跳上n级台阶的跳法等于前面1~(n-1)级台阶跳法的总和+1。

2.跳上n级台阶的跳法等于2^(n-1)。

//1.
#include <iostream>
using namespace std;
int n=0,ret=0,sum=0;
int main() 
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        ret=sum+1;
        sum+=ret;
    }
    cout<<ret<<endl;
    return 0;
}


//2.
#include <iostream>
using namespace std;
int n=0;
int main() 
{
    cin>>n;
    cout<<(1<<(n-1))<<endl;
    return 0;
}

098:包含不超过两种字符的最长子串

题目链接:包含不超过两种字符的最长子串_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

滑动窗口

#include <iostream>
#include<string>
using namespace std;
string s;
int cnt[26];
int flag = 0, ret = 0;
int main() {
    cin >> s;
    int n = s.size();
    int left = 0, right = 0, ret = 0;
    while (right < n) 
    {
        if(cnt[s[right]-'a']++ == 0) flag++;
        while(flag>2)
        {
            if(cnt[s[left++]-'a']-- == 1) flag--;
        }
        ret=max(ret,right-left+1);
        right++;
    }

    cout << ret << endl;
    return 0;
}

 

099:字符串的排列

题目链接:字符串的排列_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

排序+递归dfs(全排列)

画树形图,注意剪枝的情况

class Solution {
public:
    vector<string> ret; //收集叶子节点
    string path; //路径信息
    bool vis[11]={0}; //标记位置已经使用过
    int n;
    string s;

    vector<string> Permutation(string str) 
    {
        n=str.size();
        sort(str.begin(),str.end());
        s=str;

        dfs(0);
        return ret;
    }
    void dfs(int pos)//要填的位置
    {
        //回溯条件
        if(pos==n)
        {
            ret.push_back(path);
            return;
        }
        for(int i=0;i<n;i++) //完整遍历一遍字符串,确定要填的字符
        {
            if(!vis[i])
            {
                //剪枝
                if(i>0 && s[i]==s[i-1] && !vis[i-1]) continue;
                path.push_back(s[i]);
                vis[i]=true;
                dfs(pos+1);
                //恢复原样
                vis[i]=false;
                path.pop_back();
            }
        }
    }
};

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

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

相关文章

[5] CUDA线程调用与存储器架构

CUDA线程调用与存储器架构 前几节简单讲了如何编写CUDA程序&#xff0c;利用GPU的处理能力并行执行多个线程和块。之前所有程序里的线程是相互独立的&#xff0c;没有多个线程之间的通信多是实际应用程序需要中间线程之间的通信&#xff0c;本文将仔细讲解线程调用以及CUDA的分…

Gradle的settings.gradle.kts你真的理解吗?

你还在用.gradle文件吗&#xff1f;例如build.gradle、settings.gradle&#xff0c;那么你就out了。现在我们有必要了解一下kts脚本了。在Android项目中&#xff0c;默认有3个文件可以替换成kts脚本&#xff0c;即project的build.gradle、app模块的build.gradle和project的sett…

关于在子线程中获取不到HttpServletRequest对象的问题

这篇文章主要分享一下项目里遇到的获取request对象为null的问题&#xff0c;具体是在登录的时候触发的邮箱提醒&#xff0c;获取客户端ip地址&#xff0c;然后通过ip地址定位获取定位信息&#xff0c;从而提示账号在哪里登录。 但是登录却发现获取request对象的时候报错了。 具…

数据插值之朗格朗日插值(一)

目录 一、引言 二、代码实现 2.1 Lagrange插值求插值多项式&#xff1a; 代码解析&#xff1a; 1.vpa解释 2.ploy&#xff08;x&#xff09;解释: 3.conv&#xff08;&#xff09;解释 4.poly2sym()解释 2.2 Lagrange插值求新样本值和误差估计&#xff1a; 代码解析&…

鲁教版七年级数学上册-笔记

文章目录 第一章 三角形1 认识三角形2 图形的全等3 探索三角形全等的条件4 三角形的尺规作图5 利用三角形全等测距离 第二章 轴对称1 轴对称现象2 探索轴对称的性质4 利用轴对称进行设计 第三章 勾股定理1 探索勾股定理2 一定是直角三角形吗3 勾股定理的应用举例 第四章 实数1 …

C++技能进阶指南——多态语法剖析

前言&#xff1a;多态是面向对象的三大特性之一。顾名思义&#xff0c; 多态就是多种状态。 那么是什么的多种状态呢&#xff1f; 这里的可能有很多。比如我们去买火车票&#xff0c; 有普通票&#xff0c; 学生票&#xff1b; 又比如我们去旅游&#xff0c; 有儿童票&#xff…

心链2---前端开发(整合路由,搜索页面,用户信息页开发)

心链——伙伴匹配系统 接口调试 说书人&#x1f4d6;&#xff1a;上回书说到用了两种方法查询标签1.SQL查询&#xff0c;2.内存查询&#xff1b;两种查询效率是部分上下&#xff0c;打的是难解难分&#xff0c;是时大地皴裂&#xff0c;天色聚变&#xff0c;老祖斟酌再三最后决…

数据库-SQL性能分析

SQL执行频率 慢查询日志 慢查询日志记录了所有执行时间超过指定参数&#xff08;long_query_time&#xff0c;单位&#xff1a;秒&#xff0c;默认10秒&#xff09;的所有 SQL语句的日志。 MySQL的慢查询日志默认没有开启&#xff0c;我们可以查看一下系统变量 slow_query_l…

leetcode328. 奇偶链表,附详细解析和代码注释

leetcode328. 奇偶链表 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。 请注意&#xff0…

初出茅庐的小李博客之用MQTT.fx软件进行消息发布与订阅【 基于EMQX Cloud】

MQTT.fx软件使用简单介绍 MQTT.fx 的软件界面如下图所示&#xff0c;最上方为 MQTT Broker 连接地址栏&#xff0c;及其连接配置。其下方功能 Tabs 含有 Publish 发布栏、Subscribe 订阅栏、Scripts 脚本栏、Broker Status 状态消息栏、Log 日志信息控制栏。 连接之前要明确几…

Distributed Transactions Mit 6.824

Topic1&#xff1a;distributed transactions concurrency control atomic commit 传统计划&#xff1a;事务 程序员标记代码序列的开始/结束作为事务。 事务示例 x 和 y 是银行余额——数据库表中的记录。x 和 y 位于不同的服务器上&#xff08;可能在不同的银行&#x…

NDIS小端口驱动(九)

PCIe设备难免会遇到一些重置设备的请求&#xff0c;例如重置总线的时候&#xff0c;但是由于NIC网卡的多样性&#xff0c;重置设备确实也有许多要注意的地方&#xff0c;另外还有一些包含WDM的NDIS驱动 微型端口驱动程序硬件重置 微型端口驱动程序必须向 NdisMRegisterMinipo…

10款免费黑科技软件,强烈推荐!

1.AI视频生成——巨日禄 网页版https://aitools.jurilu.com/ "巨日禄 "是一款功能强大的文本视频生成器&#xff0c;可以快速将文本内容转换成极具吸引力的视频。操作简单&#xff0c;用户只需输入文字&#xff0c;选择喜欢的样式和模板&#xff0c; “巨日禄”就会…

qemu+gdb调试linux内核

打开CONFIG_DEBUG_INFO,编译内核 通过图形菜单配置该宏,执行make menuconfig。 kernel hacking —> compile-time checks and compiler options —> compile the kernel with debug info 验证是否打开成功,grep -nr “CONFIG_DEBUG_INFO” .config。 打开成功,然后…

初识Spring Boot

初识Spring Boot SpringBoot是建立在Spring框架之上的一个项目,它的目标是简化Spring应用程序的初始搭建以及开发过程。 对比Spring Spring Boot作为Spring框架的一个模块&#xff0c;旨在简化Spring应用程序的初始搭建和开发过程&#xff0c;以下是Spring Boot相对于传统Spri…

【通义千问—Qwen-Agent系列2】案例分析(图像理解图文生成Agent||多模态助手|| 基于ReAct范式的数据分析Agent)

目录 前言一、快速开始1-1、介绍1-2、安装1-3、开发你自己的Agent 二、基于Qwen-Agent的案例分析2-0、环境安装2-1、图像理解&文本生成Agent2-2、 基于ReAct范式的数据分析Agent2-3、 多模态助手 附录1、agent源码2、router源码 总结 前言 Qwen-Agent是一个开发框架。开发…

iZotope RX 11 for Mac:音频修复的终极利器

在音频处理的世界里&#xff0c;纯净与清晰是每一个创作者追求的目标。iZotope RX 11 for Mac&#xff0c;这款专为Mac用户打造的音频修复软件&#xff0c;凭借其卓越的音频修复能力和丰富的功能&#xff0c;已经成为众多音频工程师和音乐制作人的首选工具。 iZotope RX 11 for…

线程生命周期

创建线程的两种方法 1.继承Thread类 2.实现Runnable接口 线程从创建到消亡分为新建、就绪、运行、阻塞、死亡5种状态。 新建状态 创建一个线程就处于新建状态。此时线程对象已经被分配了内存空间&#xff0c;并且私有数据也被初始化&#xff0c;但是该线程还不能运行。 就…

nodeJs学习(第一周)

文章目录 学习总结nodejs基础知识核心模块&#xff08;内置模块&#xff09;fs&#xff08;file-system&#xff09;文件系统fs增删查改urlQuery String httprequest根据不同的请求路径发送不同的响应结果requireip地址和端口号Content-Type 第三方模块 express登录接口逻辑分析…