【字符串】1370. 上升下降字符串(简单)

第十八章:一文掌握数组标记 数组标记 一.桶标记 1.认识数组 数组是一种将数据有序存放的结构,通过一维数组的学习,相信同学们会感觉数组的使用是非常灵活的,原因无异于是因为数组里一个下标对应一个元素。例如 int a[5]={2,3,5,7,11},下标0对应的元素为a[0],下标1对应元素a[1]...,那么在将数组应用在生活或者学习场景中时,下标及其对应的元素就会有不同的含义。 2.桶标记引入背景: 这里有一个有趣的问题:从键盘输入5 个0-9 的数,然后输出0-9 中哪些没有出现过的数。例如,输入2 5 2 1 8 . 阅读详情

【题目】
给你一个字符串 s ,请你根据下面的算法重新构造字符串:
从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。
从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。
重复步骤 2 ,直到你没法从 s 中选择字符。
从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。
从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。
重复步骤 5 ,直到你没法从 s 中选择字符。
重复步骤 1 到 6 ,直到 s 中所有字符都已经被选过。
在任何一步中,如果最小或者最大字符不止一个 ,你可以选择其中任意一个,并将其添加到结果字符串。
请你返回将 s 中字符重新排序后的 结果字符串 。
【示例 1】
输入:s = “aaaabbbbcccc”
输出:“abccbaabccba”
解释:第一轮的步骤 1,2,3 后,结果字符串为 result = “abc”
第一轮的步骤 4,5,6 后,结果字符串为 result = “abccba”
第一轮结束,现在 s = “aabbcc” ,我们再次回到步骤 1
第二轮的步骤 1,2,3 后,结果字符串为 result = “abccbaabc”
第二轮的步骤 4,5,6 后,结果字符串为 result = “abccbaabccba”
【示例 2】
输入:s = “rat”
输出:“art”
解释:单词 “rat” 在上述算法重排序以后变成 “art”
【示例 3】
输入:s = “leetcode”
输出:“cdelotee”
【示例 4】
输入:s = “ggggggg”
输出:“ggggggg”
【示例 5】
输入:s = “spo”
输出:“ops”
【提示】
1 <= s.length <= 500
s 只包含小写英文字母。
【代码】
执行用时:
8 ms, 在所有 C++ 提交中击败了85.24%的用户
内存消耗:
7.8 MB, 在所有 C++ 提交中击败了27.43%的用户

class Solution {
public:
    string sortString(string s) {
        int ch[26]={0},cnt=0;
        for(auto x:s){
            ch[x-'a']++;
            cnt++;
        }
        string list[26]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s",
        "t","u","v","w","x","y","z"};
        string str="";
        while(cnt){
            for(int i=0;i<26;i++){
                if(ch[i]){
                    str+=list[i];
                    cnt--;
                    ch[i]--;
                }
            }   
            for(int i=25;i>=0;i--){
                if(ch[i]){
                    str+=list[i];
                    cnt--;
                    ch[i]--;
                }
            }
        }
        return str;
    }
};
基于YOLOv5的隧道衬砌缺陷智能检测系统 计算机视觉在工程检测领域正发挥越来越重要的作用,特别是目标检测技术通过深度学习算法实现了对复杂场景的智能分析。YOLOv5作为当前主流的目标检测框架,通过改进网络结构和训练策略,可以显著提升检测精度和效率。在隧道工程领域,结合通道注意力机制和多尺度特征融合技术,能够有效解决衬砌缺陷识别中的小目标检测难题。这种AI检测系统相比传统人工判读地质雷达图像,不仅将效率提升20倍,还能将识别准确率提高到92.3%,特别适用于3cm以上结构缺陷的自动化检测。系统通过深度可分离卷积等优化,实现了模型轻量化,便于在边缘计算 阅读详情

相关推荐

使用fluent计算流噪声_Fluent能够做的事

刚接触到fluent的同学们,应该会比较好奇,fluent能够做些什么事情,和你的研究有没有关联,能不能达到你的目的?如果不弄明白这样一点,前期可能会做很多无用功。 fluent是计算流体力学的软件,是一个工具。这样一个工具发展至今,可以用来模拟的绝不只有流体力学。下面我们依次来说明。首先是流动,fluent提供了非常丰富的流动模型,不仅可以模拟层流,同样还可以模拟...

weixin_28717647的博客 4858

java字符串上坡度,坡度分析 | SuperMap iDesktop Java

度和坡向是两个重要的地形特征因子,在地形表面分析中起到重要作用。其中,坡度表示地球面某一位置的高度变化率的量度。分析原理地表面某一点的坡度是表示地表在该点的倾斜程度的量,是既有大小又有方向的矢量。在地形分析中,坡度表示经过地表某一点的切平面和水平面所形成的夹角。根据坡度图,可以了解到区域内各位置的地形的陡峭程度。在坡度图中,每个像元都有一个坡度值,值越大表示地势越陡峭,值越小表示地势越平坦。坡度可...

weixin_36021459的博客 849

STC32G电调调试血泪史:从TPH1R403NL MOS管烧毁到PWM信号异常排查全记录

本文详细记录了STC32G无刷电调调试过程中的常见问题与解决方案,包括MOS管烧毁、PWM信号异常等关键故障排查。通过电源系统检测、驱动电路验证及三相平衡调试等实战经验,帮助硬件爱好者快速定位问题,提升电调调试效率。特别针对TPH1R403NL等MOS管的保护措施进行了重点分析。

weixin_33736048的博客 551

简单题--1370. 上升下降字符串

力扣刷题 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。 重复步骤 1 到 6 ,直到

weixin_45209397的博客 313

别再怕ADRC调参了!手把手教你用MATLAB/Simulink搞定TD、ESO、NLSEF(附完整参数表)

本文详细解析了ADRC(自抗扰控制)的调参方法,通过MATLAB/Simulink实战演示,帮助工程师快速掌握TD、ESO和NLSEF模块的参数整定技巧。文章提供了完整的参数表和调参指南,解决ADRC调参难题,提升控制系统的鲁棒性和性能。

weixin_30252709的博客 178

从单应矩阵到实际距离:Apriltag测距完整实现指南

本文提供了基于Apriltag实现高精度视觉测距与姿态估计的完整指南。详细阐述了从相机标定、单应矩阵分解到欧拉角与距离计算的完整流程,并深入探讨了四个解的歧义选择、工程实践中的滤波优化与多Tag融合等关键问题,旨在帮助开发者在机器人、AR等应用中实现稳定可靠的距离检测与姿态估计。

n7o8p的博客 560

Java基础:转义字符

能够转变含义的字符,称之为转义字符;java中的转义字符。

weixin_52740651的博客 325

Tiff、jpg图片怎么样添加地理坐标信息

Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方

树木_xzw的博客 2万+

C++ 每日一题

C++字符串反转实现 自己编写一个Reverse函数实现字符串反转 void Reverse(char* s, int len) { for (int i = 0,j=len; i < j; i++,j--) { char c = s[i]; s[i] = s[j]; s[j] = c; } } void test01() { char str[] = { "abcdef" }; int len = strlen(str) - 1; Reverse(str, le

hello_mylife_的博客 2007

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:BLDC电机PID电流控制策略仿真

*无刷直流电机(Brushless DC Motor, BLDC)**因其高效率、长寿命和低维护成本,在众多领域如家用电器、工业自动化、电动汽车等得到了广泛应用。为了实现对BLDC电机的有效控制,通常采用基于霍尔传感器或反电动势检测的换相技术,并结合电流闭环控制以提高系统的动态响应和稳定性。本教程将带你使用构建一个基于PID控制的BLDC电机电流控制策略仿真模型BLDC电机建模PID控制器设计与应用系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 197

FISCO BCOS(一)———搭建单群组FISCO BCOS联盟链

1、安装ubuntu依赖 sudo apt install -y openssl curl 2、创建操作目录, 下载安装脚本 创建操作目录 cd ~ && mkdir -p fisco && cd fisco 下载脚本 curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh && chmod u+x build_chain.

林中有神君 6657

【LeetCode每日一题】[简单]1370. 上升下降字符串

【LeetCode每日一题】[简单]1370. 上升下降字符串 1370. 上升下降字符串 1370. 上升下降字符串 算法思想:字符串 题目: java代码 计数;统计26个字母出现次数; 正向遍历,反向遍历,拼凑新字符串; class Solution { public String sortString(String s) { int[] m = new int[26];//计数 for (char ch : s.toCharArray()) {//统计每个字母出现频率 m

qq_39457586的博客 167

AMBA-CHI协议详解(三)

Write Transactions、Atomic transactions、 Stash transactions、 Dataless transactions的等各个事务的事务流。

Crazzy_M的博客 3181

【简单】1370. 上升下降字符串

【题目】 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 1、从 s 中选出 最小 的字符,将它 接在 结果字符串的后面 2、从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 3、 来源:leetcode 链接:https://leetcode-cn.com/problems/increasing-decreasing-string/ 【示例1】 输入:s = “aaaabbbbcccc” 输出:“abccbaabccba” 【代码】 class S

... 297

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【算法】简单的桶计数的应用——leetcode 1370.上升下降字符串

桶计数 缘由 今天写leetcode上的每日一题 1370.上身下降字符串 这是一道很简单的题目,但是自己一开始没有想到用桶计数的方法来做,说明自己对桶计数这个方法还不是特别的熟悉,所以在这里做个记录,让自己以后遇到类似的问题可以更快地找到合适的方法。 题目 题目是这样描述的 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2

weixin_45781252的博客 1307

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

1370. 上升下降字符串 - 【简单】

【题目描述】:给你一个字符串s,请你根据下面的算法重新构造字符串: 从s中选出 最小 的字符,将它 接在 结果字符串的后面。 从s剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从s中选择字符。 从s中选出 最大 的字符,将它 接在 结果字符串的后面。 从s剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从s中选择字符。 重复步骤 1 到 6 ,直到s中所有字符都已经被

晓野豬 441

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Python】【难度:简单】Leetcode 1370. 上升下降字符串

给你一个字符串s,请你根据下面的算法重新构造字符串: 从 s中选出 最小的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它 接在结果字符串后面。 重复步骤 2 ,直到你没法从 s中选择字符。 从 s中选出 最大的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它 接在结果字符串后面。 重复步骤 5,直到你没法从 s中选择字符。 重复步骤 1 到 6 ,直到 s中...

thomashhs12的博客 491

【LeetCode】C++ :简单题 - 字符串 1370. 上升下降字符串

1370. 上升下降字符串 难度简单83 给你一个字符串s,请你根据下面的算法重新构造字符串: 从s中选出最小的字符,将它接在结果字符串的后面。 从s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它接在结果字符串后面。 重复步骤 2 ,直到你没法从s中选择字符。 从s中选出最大的字符,将它接在结果字符串的后面。 从s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它接在结果字符串后面。 重复步骤 5,直到你没法...

weixin_44566432的博客 162

LeetCode简单题1370.上升下降字符串

LeetCode简单题1370.上升下降字符串

Leung_Chiu_Wai的博客 88

1370. 上升下降字符串(简单)

两个循环,借鉴题解,改进,大体思路一致 Anything is possible

Enter 94

LeetCode--2周速刷--简单题--1370. 上升下降字符串

题目描述 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。 重复步骤 1 到 6 ,直

Mmyine的博客 189

【Leetcode每日一题】 1370. 上升下降字符串(水题)

Leetcode 每日一题 题目链接: 1370. 上升下降字符串 难度: 简单 解题思路: 将字符串转化成字典,并对key关键字进行排序。然后从小到大,从大到小进行拼接。 题解: class Solution: def sortString(self, s: str) -> str: # 记录每个字符出现的次数 support = {} for example in s: support[example] = support.

YancyKahn 426

算法leetcode|1370. 上升下降字符串(rust很好用)

给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中

二当家的白帽子 500

LeetCode 1370. 上升下降字符串 | Python

思路:计数(桶)

"大梦三千秋的博客 413

LeetCode第1370题上升下降字符串

1370. 上升下降字符串 题目: 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。 重复步骤 5 ,直到你没法从 s 中选择字符。

qq_41967623的博客 161

1370. 上升下降字符串 (桶排序)

LeetCode: 1370. 上升下降字符串 同上题: 1370. 上升下降字符串 (暴力) 这种解法明显提升效率 AC Code public String sortString(String s) { // 26个 桶 int[] bucket = new int[26]; char[] cs = new char[s.length()]; int index = 0; for (int i = 0;

lankerens 458
上一篇: 【字符串】804. 唯一摩尔斯密码词(简单)
下一篇: 【字符串】344. 反转字符串(简单)
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值