C++笔试强训day13

news2024/9/28 5:29:33

目录

1.⽜⽜冲钻五

2.最长无重复子数组

​编辑

3.重排字符串


1.⽜⽜冲钻五

链接

简单逻辑题,按照题目意思模拟就能过。

详细代码:

#include <iostream>

using namespace std;

int n,k;
void solve()
{
    cin >> n >> k;
    
    string s;
    cin >> s;
    
    int sum = 0;
    int cnt = 0;
    for(int i = 0; i < s.size(); i++)
    {
        if(s[i] == 'W')
        {
            if(cnt >= 2)
            {
                sum += k;
            }
            else
            {
                sum += 1;
            }
            cnt++;
        }
        else
        {
            sum -= 1;
            cnt = 0;
        }
    }
    cout << sum << endl;
}

int main()
{
    int t;
    cin >> t;
    while(t--)
        solve();
    
    return 0;
}

2.最长无重复子数组

链接

这种题目一眼双指针,然后晋升为滑动窗口解题:

注意进窗口和出窗口的位置以及len的更新就能AC。

// 哈希+双指针
class Solution {
public:
    int cnt[100010] = { 0 };
    int maxLength(vector<int>& arr) {
        int n = arr.size();

        int l = 0;
        int r = 0;
        int len = 0;
        while(r < n)
        {
            cnt[arr[r]]++;// 进窗口
            while(cnt[arr[r]] > 1)// 出窗口(条件)
            {
                cnt[arr[l]]--;
                l++;
            }
            len = max(len, r - l + 1);
            r++;
        }
        return len;
    }
};

3.重排字符串

链接

找到填入规律就很好办,先找到次数最多的字母,隔空填入:

(例如)

然后将剩下的字母依次填入即可,注意一个细节即可:

当超出范围时,记得将填入位置的下标修改为1

还有就是要会判断是否能重排的临界:


如上图,若是多出一个C,必然不可能重排,即C的数量 >(n + 1) /  2的话,直接输出noi就行了。

否则,考虑后者。

详细代码:

#include <iostream>
using namespace std;
const int N = 100010;
int n;
char s[N];
char ret[N];
int main()
{
    cin >> n >> s;

    int cnt[26] = { 0 }; // 统计每个字符的频次
    int maxIndex, maxCount = 0;
    for (int i = 0; i < n; i++)
    {
        if (maxCount < ++cnt[s[i] - 'a'])
        {
            maxCount = cnt[s[i] - 'a'];
            maxIndex = s[i] - 'a';
        }
    }

    if (maxCount > (n + 1) / 2) 
        cout << "no" << endl;
    else
    {
        cout << "yes" << endl;
        int index = 0;
        // 先去摆放出现次数最多的
        while (maxCount--)
        {
            ret[index] = maxIndex + 'a';
            index += 2;
        }
        // 处理剩下的
        for (int i = 0; i < 26; i++)
        {
            if (cnt[i] && i != maxIndex)
            {
                while (cnt[i]--)
                {
                    if (index >= n) index = 1;
                    ret[index] = i + 'a';
                    index += 2;
                }
            }
        }
        // 打印结果
        for (int i = 0; i < n; i++) cout << ret[i];
        cout << endl;
    }

    return 0;
}

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

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

相关文章

HNU-人工智能-实验2-简单CSP问题

人工智能-实验2 计科210x 甘晴void 一、实验目的 求解约束满足问题 使用回溯搜索算法求解八皇后问题 二、实验平台 课程实训平台https://www.educoder.net/paths/369 三、实验内容 3.0 题目要求 回溯搜索算法 搜索与回溯是计算机解题中常用的算法&#xff0c;很多问…

C#知识|如何在WinForm窗体中实现分割线绘制?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 在上位机UI设计中经常会用到分割线&#xff0c;用来分割界面区域。 像在KingSCADA、杰控、昆仑通态、WinCC、组态王、力控、易控等组态软件中非常简单&#xff0c;有现成的划线操作&#xff0c;选中相关工具直接绘制即…

一文看懂卷积神经网络CNN(2)—卷积神经网络

目录 一、卷积 1、卷积的定义 &#xff08;1&#xff09;一维卷积 &#xff08;2&#xff09;二维卷积 2、互相关 3、互相关和卷积的区别 4、卷积的变种 5、卷积的数学性质 &#xff08;1&#xff09;交换性 &#xff08;2&#xff09;导数 二、卷积神经网络 1、卷…

Linux 内核简介

操作系统简介 操作系统概念&#xff1a;操作系统处于硬件和应用程序的中间层&#xff0c;控制和管理整个计算机系统的硬件和软件资源&#xff0c;提供给用户和其他软件方便的接口和环境&#xff0c;它是计算机系统的最基本的系统软件。 操作系统功能: 处理机管理存储器管理设…

基于Springboot的房屋租赁管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的房屋租赁管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

01 JVM -- JVM 体系结构、HotSpot

1. JVM、HotSpot、 OpenJDK 的区别 JVM (Java Virtual Machine) 是一个虚拟机HotSpot 是 JVM 规范的一个实现。HotSpot 虚拟机通过即时编译 (JIT) 技术将 Java 字节码转换为本地机器码&#xff0c;以提高程序的执行效率。OpenJDK 是一个项目名&#xff0c;它在 HotSpot 的基础…

puzzle(1041)植此青绿、拼图迷宫

目录 植此青绿 简单模式 困难模式 拼图迷宫 核心规则 中级模式具体规则 十字的交叉点 十字的端点、L的交叉点 L的端点 直线、矩形 U的端点 中级模式精选关卡 基本策略 高级模式具体规则 Z形状 T形状 高级模式精选关卡 植此青绿 最强大脑同款项目。 给出7个正…

JavaEE企业级开发中常用的JDK7和JDK8的时间类

JDK7时间类 全世界的时间有一个统一的计算标准 在同一条经线上的时间是一样的 格林威治时间 简称GMT 计算核心 地球自转一天是24小时 太阳直射正好是12小时 但是误差太大 现在用原子钟来代替 用铯原子震动的频率来计算时间&#xff0c;作为世界的标准时间UTC 中国标准时间…

开源版本管理系统的搭建二:SVN部署及使用

作者&#xff1a;私语茶馆 1. Visual SVN Server部署 SVN Server部署包括&#xff1a; 创建版本仓库创建用户 这些部署是通过VisualSVN Server Manager实现的&#xff0c;如下图&#xff1a; VisualSVN Server Manager&#xff08;安装后自带&#xff09; 1.1.SVN 初始化配…

流畅的Python阅读笔记

五一快乐的时光总是飞快了&#xff0c;不知多久没有拿起键盘写文章了&#xff0c;最近公司有Python的需求&#xff0c;想着复习下Python吧&#xff0c;然后就买了本Python的书籍 书名&#xff1a; 《流畅的Python》 下面是整理的一个阅读笔记&#xff0c;大家自行查阅&#xf…

ROS专栏—基于STM32F103的INA219电源数据采集

一、专栏介绍 这篇博客为ROS小车专栏的第一篇&#xff0c;自己想要做一个ROS小车&#xff0c;同时通过CSDN平台记录我的制作过程&#xff0c;为后来者提供一些参考吧&#xff0c;恩我也是从零开始摸索&#xff0c;可能会有很多错误和问题&#xff0c;希望大家多多包涵。 二、…

Python 全栈系列241 GFGo Lite迭代

说明 随着整个算网开发逐渐深入&#xff0c;各个组件、微服务的数量、深度在不断增加。由于算网是个人项目&#xff0c;我一直按照MVP(Minimum Viable Product )的原则在推进。由于最初的时候对架构、算法和业务的理解并没有那么深刻&#xff0c;所以MVP的内容还是在不断变化&…

数据结构十:哈希表

本次将从概念上理解什么是哈希表&#xff0c;理论知识较多&#xff0c;满满干货&#xff0c;这也是面试笔试的一个重点区域。 目录 一、什么是哈希表 1.0 为什么会有哈希表&#xff1f; 1.1 哈希表的基本概念 1.2 基本思想 1.3 举例理解 1.4 存在的问题 1.5 总结 二、…

基于TL431基准电压源的可调恒压恒流源的Multisim电路仿真设计

1、线性电源的工作原理 在我们日常应用里&#xff0c;直流电是从市电或电网中的交流电获取的。例如15V直流电压源、24V直流电压源等等。交流电变为直流电的过程大概分为一下几步&#xff1a; 首先&#xff0c;交流电通过变压器降低其电压幅值。接着&#xff0c;经过整流电路进…

01_SpringBoot简单搭建入门程序

目录 1、先创建一个java项目2、导入依赖3、将Java项目修改为SpringBoot项目4、编写一个测试的Controller5、测试(创建一个*.http的文件)方式1&#xff1a;方式2&#xff1a;可以直接在浏览器访问该地址方式3&#xff1a;使用postman也可以 1、先创建一个java项目 我的项目结构…

智能化工单助力业务运作:亿发解析工单系统的功能与适用场景

在现代企业管理中&#xff0c;工单系统扮演着至关重要的角色。面对市面上众多的工单系统&#xff0c;我们可以根据不同的依据进行分类&#xff0c;以更好地满足企业的需求。 1、按部署方式分类&#xff1a; 按照部署方式可以分为本地化部署工单系统和云端SaaS服务工单系统。 …

步态识别论文(6)GaitDAN: Cross-view Gait Recognition via Adversarial Domain Adaptation

摘要: 视角变化导致步态外观存在显着差异。因此&#xff0c;识别跨视图场景中的步态是非常具有挑战性的。最近的方法要么在进行识别之前将步态从原始视图转换为目标视图&#xff0c;要么通过蛮力学习或解耦学习提取与相机视图无关的步态特征。然而&#xff0c;这些方法有许多约…

【java9】java9新特性之Optional类改进

其实Optional类在Java8中就引入了&#xff0c;用于避免null检查和NullPointerException指针问题。 在Java9中&#xff0c;Optional类得到了进一步的改进&#xff0c;增加了一些新的方法&#xff0c;使其更加灵活和易用。 以下是一些Java9中对Optional类的改进&#xff1a; s…

ssm106学生公寓管理系统的设计与实现+jsp

学生公寓管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生公寓管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短…

python数据分析——数据分析的统计推断

数据分析的统计推断 前言一、提出问题二、统计归纳方法三、统计推断四、统计推断步骤4.1.点估计4.2.区间估计4.2.1. 总体方差已知4.2.2总体方差未知 4.3. 假设检验4.4. 假设检验的假设4.5.显著性水平 五、检验统计量六、检验方法七、拒绝域八、假设检验步骤九、重要假设检验方法…